【bzoj1978】 BEIJING2010 取数游戏 game dp优化
2015-10-06 16:11
483 查看
绝世好题,类比lis来做,dp[x]表示含有约数x的最大值,复杂度O(n sqrt(n))
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #define maxn 50010 using namespace std; int f[maxn]; int dp[1000010]; int a[maxn],n,ans,l; int main() { scanf("%d%d",&n,&l); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) { f[i]=1; for (int j=1;j*j<=a[i];j++) if (a[i]%j==0) { if (j>=l) f[i]=max(f[i],dp[j]+1); if (a[i]/j>=l) f[i]=max(f[i],dp[a[i]/j]+1); } ans=max(ans,f[i]); for (int j=1;j*j<=a[i];j++) if (a[i]%j==0) { dp[j]=max(dp[j],f[i]); dp[a[i]/j]=max(dp[a[i]/j],f[i]); } } printf("%d\n",ans); return 0; }
相关文章推荐
- CoreAnimation 核心动画二 锚点
- C语言文件输出,把内容输入到新建文件中
- 增删改查数据库用的组件
- (转)数据库范式那些事(清晰)
- UEFI工程编译命令Build用法
- [LeetCode-172] Factorial Trailing Zeroes(n 阶乘后面有几个0)
- 20151006模拟赛总结
- codeforces 372B B. Counting Rectangles is Fun(暴力)
- 原码、反码、补码的由来和计算
- 导航效果
- leetcode 290: Word Pattern
- java 中static final关键字
- 如何在控件没有绘制完成之前读取控件的长宽
- Learn more study less 读后感
- 随机数
- 多表联查
- ACM学习历程—POJ3565 Ants(最佳匹配KM算法)
- hdu5117 Fluorescent DP,期望
- 【Scala学习笔记】2. 函数定义、流程控制、异常处理
- eclipse中倒入项目时,报关于.classpath的错误