一道简单的dp题
小a与星际探索
https://ac.nowcoder.com/acm/contest/317/C
#include<bits/stdc++.h>
using namespace std;
int a[3005];
int dp[3005];
int n;
int main()
{
int dp[10000];
int wei=0;
while(cin>>n)
{
memset(dp,0,sizeof(dp));
int i , j;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
if(a[1]<=a[n]) cout<<"-1"<<endl;
else
{
dp[1]=a[1];
bool flag=false;
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++){
if(a[i]<a[j]&&dp[j])
dp[i]=max(dp[i],dp[j]^a[i]);
}
}
if(dp[n]==0)
cout<<"-1"<<endl;
else
cout<<dp[n]<<endl;
}
}
return 0;
}