问题标题: 酷町堂:3109

0
0

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

张家禾   你好!!!

这题要用动态规划

首先定义下面几个数:

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
李泽远
李泽远
高级天翼
高级天翼

if(我没猜错)

    你是高级班吧;

else

    打扰了;

if(这是作业)

    不能回答;

else

    大家请便;

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

这题是动态规划的题目

状态:f[i]:玩前i个项目能获得的最大体验积分 
边界:f[0]:0   f[1]=a[1]
状态转移方程:f[i]=max(f[i-2]+a[i],f[i-1])
目标:f[n] 
0
我要回答