1、简单描述
一共有n家店铺,不能抢劫相邻的两家店铺,最多能抢多少钱。
2、思路
#include<bits/stdc++.h>
using namespace std;
int t,n,ans;
int f[100001],a[100001];
int main()
{
cin>>t;
while(t--)
{
cin>>n;
memset(f,0,sizeof(f));
ans=0;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
f[i]=a[i];
f[i]=max(f[i-2]+a[i],f[i-3]+a[i]);
ans=max(ans,f[i]);
}
cout<<ans<<endl;
}
return 0;
}
缩小规模,假设第i家店是最后抢劫的一家店,递推公式
f[i]=max(f[i-2]+a[i],f[i-3]+a[i])