全是TLE/RE,求助
查看原帖
全是TLE/RE,求助
1376920
Whitecate楼主2024/10/3 20:17
#include <cstring>
#include <iostream>
using namespace std;
int n,m,p,dp[1008],pfx[1008][1008],c[1008];
int F(int pos) {return (pos % n + n) % n;}

int main()
{
    cin >> n >> m >> p;
    for(int j = 0; j < n; j++)
    {
        for(int i = 1; j <= m; i++)
        {
            cin >> pfx[i][j];
        }
    }
    for(int i = 1; i <= m; i++)
    {
        for(int j = 0; j < n; j++)
        {
            pfx[i][j] += pfx[i-1][F(j-1)];
        }
    }
    for(int j = 0; j < n; j++)
    {
        cin >> c[j];
    }
    memset(dp,0xc0c0c0c0,sizeof(dp));
    dp[0] = 0;
    for(int i = 1; i <= m; i++)
    {
        for(int j = 0; j < n; j++)
        {
            for(int k = 1; k <= min(p,i); k++)
            {
                dp[i] = max(dp[i],dp[i-k] - c[F(j-k+1)] + pfx[i][j] - pfx[i-k][F(j-k)]);
                
            }
        }
    }
    cout << dp[m] << endl;
    return 0;
}
2024/10/3 20:17
加载中...