问下大神,为什么这道题同传纸条

回复帖子 返回题目

@ tonylzq1 2017-07-17 21:35

问下大神,为什么这道题同传纸条,没有限制不允许走重复路径呀

//附程序,已AC
#include <cstdio>
using namespace std;
#define For(x,y,z) for(x=y;x<=z;x++)
int n;
int f[23][13][13]; 
int a[13][13];
void doit(int &x,int y)
{
    if (x<y) x=y;
    return;
}
int main()
{
    int i,j,k,x,y,z,l;
    scanf("%d",&n);
    while (1)
    {
        scanf("%d%d%d",&x,&y,&z);
        if (!x&&!y&&!z) break;
        a[x][y]=z;
    }
    For(i,1,(n-1)*2)
        For (j,1,n)
            For(k,j+1,n)
                if (j!=k&&(i-j+2<=n)&&(i-k+2<=n)&&(i-j+2>=1)&&(i-k+2>=1))
                {
                    doit(f[i][j][k],f[i-1][j-1][k-1]);
                    doit(f[i][j][k],f[i-1][j][k-1]);
                    doit(f[i][j][k],f[i-1][j-1][k]);
                    doit(f[i][j][k],f[i-1][j][k]);
                    if (i-j+2>0) f[i][j][k]+=a[j][i-j+2];
                    if (i-k+2>0) f[i][j][k]+=a[k][i-k+2];
                }
    doit(f[n*2-2][n][n],f[n*2-3][n-1][n]);
    doit(f[n*2-2][n][n],f[n*2-3][n][n-1]);
    if (n>1) f[n*2-2][n][n]+=a[n][n];
    printf("%d\n",f[n*2-2][n][n]+a[1][1]);
    return 0;
}
@ 封癫 2017-07-18 08:22 回复

传纸条也没限制

只不过传完之后好心值变成0

就相当于取走了