bzoj 4300: 绝世好题【dp】
2018-08-02 22:10
423 查看
设f[i][j]表示数列到i为止最后一项第j位为1的最大子序列长度,每次从i-1中1<<j&a[i]!=0的位+1转移来
然后i维是不需要的,答案直接在dp过程中去max即可
#include<iostream> #include<cstdio> using namespace std; int n,f[35],ans; int read() { int r=0,f=1; char p=getchar(); while(p>'9'||p<'0') { if(p=='-') f=-1; p=getchar(); } while(p>='0'&&p<='9') { r=r*10+p-48; p=getchar(); } return r*f; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { int x=read(),k=1; for(int j=0;j<=30;j++) if((1<<j)&x) k=max(f[j]+1,k); for(int j=0;j<=30;j++) if((1<<j)&x) f[j]=max(f[j],k); ans=max(ans,k); } printf("%d\n",ans); return 0; }
相关文章推荐
- [bzoj4300] 绝世好题 dp
- bzoj 4300: 绝世好题 dp
- bzoj 4300 绝世好题(dp)
- BZOJ-4300 绝世好(蛋疼)题 DP(递推)
- 【BZOJ4300】绝世好题【DP】【LIS】
- BZOJ 4300 绝世好题 dp
- 【DP】BZOJ4300[绝世好题]题解
- BZOJ-4300 绝世好(蛋疼)题 DP(递推)
- 【BZOJ】4300 绝世好题 DP
- bzoj 4300 绝世好题(dp)
- BZOJ 4300: 绝世好题( dp )
- BZOJ 4300 绝世好题(DP)
- bzoj4300: 绝世好题(dp)
- [DP] BZOJ4300: 绝世好题
- BZOJ 4300(绝世好题-dp)
- bzoj4300 绝世好题 【dp】By cellur925
- 【BZOJ4300】绝世好题(二进制,DP)
- 【DP】BZOJ4300 绝世好题
- BZOJ4300: 绝世好题(DP)
- BZOJ 4300: 绝世好题【DP