蒟蒻80pts求助
查看原帖
蒟蒻80pts求助
386892
REMAC楼主2022/12/7 17:00
// Templated by DEMAC. P1004
// 20221207
#include<bits/stdc++.h>
using namespace std;

#define int LL

using LL=long long;
using Pii=pair<int,int>;
using Pll=pair<LL,LL>;
//using real=double;
using Pdd=pair<double,double>;

#define rep(i,l,r) for(int i=(l);i<=(r);i++)
#define per(i,l,r) for(int i=(r);i>=(l);i--)
#define printAndContinue(x) {cout<<x<<endl;break;}
#define printAndBreak(x) {cout<<x<<endl;break;}
#define printAndKill(x) {cout<<x<<endl;exit(0)}
#define memset(x,k) memset(x,k,sizeof x)
#define Max(a,b) a=max(a,(b))
#define Min(a,b) a=min(a,(b))
const int inf=0x3f3f3f3f;
const LL infLL=0x3f3f3f3f3f3f3f3fll;
const int maxn=0+10;

int a[maxn][maxn];
int dp[maxn][maxn][maxn];
int base[4][2]={{-1,0},{0,-1}};

signed main()
{
   
   int n;
   cin>>n;
   int x,y,k;
   while(cin>>x)
   {
      if(x==0) break;
      cin>>y>>k;
      a[x][y]=k;
   }
   dp[1][1][1]=a[1][1];
   rep(i,1,n) {
      rep(j,1,n)
      {
         int bs=i+j;
         rep(p,1,bs-1)
         {
            if(p==i) continue;
            rep(b1,0,1){
               	rep(b2,0,1){
                  Max(dp[i][j][p],dp[i+base[b1][0]][j+base[b1][1]][p+base[b2][0]]+a[i][j]+a[p][bs-p]);
               }
            }
            // cout<<i<<' '<<j<<' '<<p<<' '<<bs-p<<':'<<dp[i][j][p]<<endl;
         }
      }
   }
   cout<<max(dp[n][n-1][n-1],dp[n-1][n][n])+a[n][n];

   return 0;
}

/* P1004 20221207*/

本蒟蒻太蒟了……

2022/12/7 17:00
加载中...