求各位大佬指点指点,为啥ac不了?

#include<bits/stdc++.h>
using namespace std;
#define N 3005
long long a[N],f[N][N];//dp数组,dp[i][j]表示前i个数中除以k的余数为j的当前最大和
int n,k;

int main(){
    cin >> n >> k;
    
    for(int i = 1; i <= n; i ++) {cin >> a[i];}
    
    memset(f,-0x3f,sizeof f);
    long long maxv = -0x3f3f3f3f;
    
    f[0][0] = 0;
    
    for(int i = 1; i <= n; i ++){
        for(int j = 0; j < k; j ++){
            f[i][j] = max(f[i - 1][(j - a[i] + k) % k] + a[i],f[i - 1][j]);
          //能ac的状态方程: f[i][(j + a[i]) % k] = max(f[i - 1][j] + a[i],f[i - 1][(j + a[i]) % k]);  
        }
    }
    
    for(int i = 1; i <= n; i ++) maxv = max(maxv,f[i][0]); 
    
    if(maxv > 0)cout << maxv << endl;
    else cout << -1 << endl;
    return 0;
}
全部评论

相关推荐

2025-12-20 13:19
已编辑
曲阜师范大学 Java
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务