问题标题: 酷町堂:3109

0
0

0
已采纳
包涵宇
包涵宇
中级天翼
中级天翼

徐硕 你好!!!

这题要用动态规划

首先定义下面几个数:

int a[10001],s[100000],n;

然后输入n和a数组:

cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];

再将s[0]至为0,s[1]至为a[1]:

s[1]=a[1];
s[0]=0;

随后从第2个数进行推算:

for(int i=2;i<=n;i++) 
    s[i]=max(s[i-2]+a[i],s[i-1]);

最后输出s[n]即可AC;

望采纳!!!

0
董子墨
董子墨
中级天翼
中级天翼

这题要用动态规划

状态:f[i]:玩前i个项目能获得的最大体验积分 
边界:f[0]:0   f[1]=a[1]
状态转移方程:f[i]=max(f[i-2]+a[i],f[i-1])
目标:f[n] 
董子墨在2019-09-13 08:53:21追加了内容

望采纳

0
我要回答