- 最长子序列
HACK & 增强数据
- @ 2025-12-2 9:06:46
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
long long maxn[40];
long long a[N];
long long dp[N];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
{
for(int j=0;j<=30;j++)
{
if(a[i]&(1<<j))
{
dp[i]=max(dp[i],maxn[j]+1);
}
}
for(int j=0;j<=30;j++)
{
if(a[i]&(1<<j))
{
maxn[j]=max(dp[i],maxn[j]);
}
}
}
cout<<dp[n]<<'\n';
return 0;
}
这份代码拿到了满分的好成绩,但这份代码是错误的。
因为以 结尾的序列不一定为最优的。
Hack: in:
3
6 2 1
ans:
2
out:
1
1 条评论
-
vvahning1 @ 2025-12-5 17:30:54
哈哈哈我不看帖
😄 1🤣 1
- 1
信息
- ID
- 27
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 142
- 已通过
- 21
- 上传者