2 solutions

  • 0
    @ 2024-7-17 13:51:26
    #include<bits/stdc++.h>
    using namespace std;
    const int N=20;
    int f[N][N][N][N];
    int g[N][N];
    int main()
    {
    	int n;
    	cin>>n;
    	int a,b,c;
    	while(cin>>a>>b>>c,a&&b&&c)
    	{
    		g[a][b]=c;
    	}
    	memset(f,0xcf,sizeof f);
    	f[0][1][0][1]=0; 
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=n;j++)
    		{
    			for(int i2=1;i2<=n;i2++)
    			{
    				for(int j2=1;j2<=n;j2++)
    				{
    					int t1=max(f[i-1][j][i2-1][j2],f[i-1][j][i2][j2-1]); //(上上),(上,左) 
    					int t2=max(f[i][j-1][i2-1][j2],f[i][j-1][i2][j2-1]); //(左,上),(左,左) 
    					f[i][j][i2][j2]=max(t1,t2)+g[i][j]; //走到当前点 
    					if(i!=i2||j!=j2)
                   {
                      f[i][j][i2][j2]+=g[i2][j2]; //如果不是同一个点 
                   }
    				}
    			}
    		}
    	}
    	cout<<f[n][n][n][n];
    	return 0;
    }
    
    • -1
      @ 2024-1-31 11:03:19
      #include<bits/stdc++.h>
      using namespace std;
      const int N=20;
      int f[N][N][N][N];
      int g[N][N];
      int main()
      {
      	int n;
      	cin>>n;
      	int a,b,c;
      	while(cin>>a>>b>>c,a&&b&&c) //读入点 
      	{
      		g[a][b]=c;
      	}
      	memset(f,0xcf,sizeof f);
      	f[0][1][0][1]=0; //起点 
      	for(int i=1;i<=n;i++)
      	{
      		for(int j=1;j<=n;j++)
      		{
      			for(int i2=1;i2<=n;i2++)
      			{
      				for(int j2=1;j2<=n;j2++)
      				{
      					int t1=max(f[i-1][j][i2-1][j2],f[i-1][j][i2][j2-1]); //(上上),(上,左) 
      					int t2=max(f[i][j-1][i2-1][j2],f[i][j-1][i2][j2-1]); //(左,上),(左,左) 
      					f[i][j][i2][j2]=max(t1,t2)+g[i][j]; //走到当前点 
      					if(i!=i2||j!=j2) f[i][j][i2][j2]+=g[i2][j2]; //如果不是同一个点 
      				}
      			}
      		}
      	}
      	cout<<f[n][n][n][n];
      	return 0;
      }
      
      
      • 1

      Information

      ID
      204
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      7
      Tags
      # Submissions
      34
      Accepted
      13
      Uploaded By