蒟蒻求解,为什么第一个样例点过不去
查看原帖
蒟蒻求解,为什么第一个样例点过不去
1259205
kaoxiangnb666楼主2024/7/11 20:55
#include<bits/stdc++.h>
using namespace std;
const int N=30;
int f[N][N][N];
int w[N][N];
int n;
int main(){
    cin>>n;
    int a,b,c;
    while(cin>>a>>b>>c,a||b||c){
        w[a][b]=c;
    }
    for(int k=2;k<=n+n;k++){
        for(int i1=1;i1<=n;i1++){
            for(int i2=1;i2<=n;i2++){
                int j1=k-i1;
                int j2=k-i2;
                if(j1>=1&&j1<=n&&j2>=1&&j2<=n){
                    int t=w[i1][j1];
                    if(i1!=i2){
                        t+=w[i2][j2];
                    }
                    f[k][i1][i2]=max(f[k][i1][i2],f[k-1][i1-1][i2-1]+t);
                    f[k][i1][i2]=max(f[k][i1][i2],f[k-1][i1-1][i2]+t);
                    f[k][i1][i2]=max(f[k][i1][i2],f[k-1][i1][i2-1]+t);
                    f[k][i1][i2]=max(f[k][i1][i2],f[k-1][i1][i2]);
                }
            }
        }
    }
    cout<<f[n+n][n][n];
    return 0;
}

必将感激不尽!

2024/7/11 20:55
加载中...