1094.大盗阿福

tech2025-10-09  1

#include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<set> #include<stack> #include<map> #include<cmath> using namespace std; const int N = 100003, M = 103, inf = 0x3f3f3f3f; typedef pair<int, int> PIR; typedef long long ll; int w[N]; int f[N];//f[i]:从前i个物品中选得到的最大值 //f[i]的转移方程有两个,一个是从前一个转移来:f[i]=f[i-1]; //另一个是从前面第二个转移来:f[i]=f[i-2]+w[i],取最大值 int main() { int T; cin >> T; while (T--) { int n; cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; if (i == 1) f[i] = x; if (i > 1) f[i] = max(f[i - 1], f[i - 2] + x); } cout << f[n] << endl; } return 0; }

 

最新回复(0)