Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip 【线性DP】
2017-05-29 15:42
549 查看
对于每个数字 ai 处理出最左的位置 Lai 和最右的位置 Rai,然后 dpi 为前i个数字最大的值,对于每一个 Lai=i 的位置计算出来i到MAX(Rai−Rai) 的异或值,然后更新dp,最后dpn 为最后的答案。
#include<bits/stdc++.h> using namespace std; const int N=6000; int L ,R ,a ,n,ans ; int main() { scanf("%d",&n); memset(L,0xff,sizeof(L)); memset(R,0xff,sizeof(R)); memset(ans,0,sizeof(ans)); for(int i=1;i<=n;i++) scanf("%d",a+i); for(int i=1;i<=n;i++) { if(L[a[i]]==-1) { L[a[i]]=i; for(int j=n;j>=i;j--) { if(a[i]==a[j]) { R[a[j]]=j; break; } } } } int out=0; for(int i=1;i<=n;i++) { ans[i]=max(ans[i],ans[i-1]); if(L[a[i]]!=i) continue; int tmp=0,up=R[a[i]],ok=1; tmp=a[i]; for(int j=i+1;j<=up;j++) { if(L[a[j]]<i) {ok=0;break;} if(R[a[j]]>up) up=R[a[j]]; if(L[a[j]]==j) tmp^=a[j]; } //printf("%d %d %d %d\n",i,up,ok,tmp); if(ok) { ans[up]=max(ans[up],ans[i]+tmp); } } printf("%d\n",ans ); return 0; }
相关文章推荐
- Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip(dp)
- Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip(dp)
- CF811C:Vladik and Memorable Trip(dp)
- 【dp】codeforces C. Vladik and Memorable Trip
- Codeforces Round #416 (Div. 2)-C. Vladik and Memorable Trip
- Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip
- Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip
- 【动态规划】 Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip
- codeforces C. Vladik and Memorable Trip DP
- Codeforces Round #416 (Div. 2) C Vladik and Memorable Trip
- Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip
- #416 Div.2 C. Vladik and Memorable Trip - DP&异或
- Codeforces Round #416 C. Vladik and Memorable Trip (DP)题解
- Codeforces Round #416 (Div. 2) - C. Vladik and Memorable Trip 动态规划
- Codeforces Round #416 (Div. 2) C - Vladik and Memorable Trip
- C. Vladik and Memorable Trip DP
- Codeforces Round #416 (Div. 2)C. Vladik and Memorable Trip
- Codeforces Round #384 (Div. 2)E.Vladik and cards【二分+状压dp】(未敲)
- Codeforces 811C Vladik and Memorable Trip【Dp】
- Codeforces Round #390 (Div. 2) C. Vladik and chat(dp)