牛客寒假算法基礎集訓營1 C. 小a與星際探索
阿新 • • 發佈:2019-02-03
bit mes acm size out cin 尋找 ace long
題目描述:
鏈接:https://ac.nowcoder.com/acm/contest/317/C
來源:牛客網
思路:dp找到1——n星球的最大耐久度
代碼如下:
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 5 int main() 6 { 7 int n,a[3005],dp[3005]; 8 while(cin >> n) 9 { 10 memset(dp,0,sizeof(dp)); 11 for(int i = 1;i <= n;i++) 12 cin >> a[i]; 13 dp[1] = a[1]; 14 //從第二個星球開始遍歷尋找最大耐久度 15 for(int i = 2;i <= n;i++) 16 { 17 for(int j = 1;j < i;j++)//從j到i星球 18 if(a[i] < a[j] && dp[j])//如果從j可以到i星球而且從1號星球可以到達j星球 19 dp[i] = max(dp[i],dp[j] ^ a[i]);//更新i星球的最大耐久度 20 } 21 if(dp[n]) 22 cout << dp[n] << endl; 23 else 24 cout << -1 << endl; 25 } 26 return 0; 27 }
牛客寒假算法基礎集訓營1 C. 小a與星際探索