二刷提高课,题解目录在这里— 提高课的题解目录
状态机模型的开篇
因为这里的每个节点转移过来的过程都是确定的,
也就是说,选这个节点上个节点必定不能选
可以认为多了一条限制,但同样帮我们确定了过程
所以可以理解为状态机模型适用于约束很多的dp问题
#include<iostream>
using namespace std;
const int N=1e5+10;
int f[N][2];
int n;
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
f[i][0]=max(f[i-1][1],f[i-1][0]);
f[i][1]=f[i-1][0]+x;
}
cout<<max(f[n][0],f[n][1])<<endl;
}
return 0;
}