社区讨论

0分求调

P1541[NOIP 2010 提高组] 乌龟棋参与者 1已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mlhhps3r
此快照首次捕获于
2026/02/11 11:48
4 周前
此快照最后确认于
2026/02/12 22:30
4 周前
查看原帖
全WA,代码:(码风可能不太好,抱歉)
CPP
#include<bits/stdc++.h>
using namespace std;
long long n,m,s[10001],dp[100][100][100][100],u,a=0,b=0,c=0,d=0;
int main(){

    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>s[i];
    }
    for(int i=0;i<m;i++){
        cin>>u;
        switch(u){
            case 1:a++;break;
            case 2:b++;break;
            case 3:c++;break;
            case 4:d++;break;
        }
    }
    dp[0][0][0][0]=s[1];
    for(int i=1;i<=a;i++){
        for(int j=1;j<=b;j++){
            for(int k=1;k<=c;k++){
                for(int l=1;l<=d;l++){
                    if(i!=0) dp[i][j][k][l]=max(dp[i][j][k][l],s[1+i+2*j+3*k+4*l]+dp[i-1][j][k][l]);
                    if(j!=0) dp[i][j][k][l]=max(dp[i][j][k][l],s[1+i+2*j+3*k+4*l]+dp[i][j-1][k][l]);
                    if(k!=0) dp[i][j][k][l]=max(dp[i][j][k][l],s[1+i+2*j+3*k+4*l]+dp[i][j][k-1][l]);
                    if(l!=0) dp[i][j][k][l]=max(dp[i][j][k][l],s[1+i+2*j+3*k+4*l]+dp[i][j][k][l-1]);
                }
            }
        }
    }
    cout<<dp[a][b][c][d];
    
    return 0;
}
帮调必关,谢谢

回复

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

正在加载回复...