社区讨论

全是0

P10108[GESP202312 六级] 闯关游戏参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@miog6pzk
此快照首次捕获于
2025/12/02 18:41
3 个月前
此快照最后确认于
2025/12/04 14:55
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[10005];
int b[200005];
int dp[200005];
int n, m;
int main()
{
	cin>>n>>m;
	for (int i=1; i<=m; i++) 
    {
        cin>>a[i];
    }
	for (int i=1; i<=n; i++) 
    {
        cin>>b[i];
    }
	memset(dp, -1e9, sizeof(dp));
	dp[n]=0;
	for (int i=n; i>=1; i--) 
    {
		long long ans=-1e9;
		for (int j=1; j<=m; j++) 
        {
			long long num;
			if (a[j]+i>=n) 
            {
                num=b[i];
            }
			else
            {
                num=b[i]+dp[a[j]+i];
            }
			ans=max(num,ans);
		}
		dp[i]=ans;
	}
	cout<<dp[0]<<endl;
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...