zoukankan      html  css  js  c++  java
  • NC16759 方格取数

    状态表示:\(f(i,j,k,l)\)表示第一个人走到\((i,j)\),第二个人走到\((k,l)\)的价值最大值

    特判一下坐标相等情况就好了。

    const int N=15;
    int f[N][N][N][N];
    int g[N][N];
    int n;
    
    int main()
    {
        cin>>n;
    
        int a,b,c;
        while(cin>>a>>b>>c)
        {
            if(!a && !b && !c) break;
            g[a][b]=c;
        }
    
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                for(int k=1;k<=n;k++)
                    for(int l=1;l<=n;l++)
                    {
                        int w;
                        if(i == k && j == l) w=g[i][j];
                        else w=g[i][j]+g[k][l];
                        f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k-1][l]+w);
                        f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k-1][l]+w);
                        f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l-1]+w);
                        f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l-1]+w);
                    }
    
        cout<<f[n][n][n][n]<<endl;
        //system("pause");
    }
    
  • 相关阅读:
    IDEA快捷键
    nginx之epoll模型的详细介绍
    Liunx权限修改命令
    小技巧3
    小技巧2
    小技巧1
    Ajax的简单使用
    dubbo
    快速创建虚拟机
    登录和注册功能的实现
  • 原文地址:https://www.cnblogs.com/fxh0707/p/13760558.html
Copyright © 2011-2022 走看看