#include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <algorithm> #include <queue> #include <iomanip> //#include <bits/stdc++.h> #define MAXN 210000000 #define MINN -210000000 using namespace std; typedef long long ll; int m[15][15],ia,ib,ic; int dp[12][12][12][12]; int main(){ int n; cin>>n; while(cin>>ia>>ib>>ic){ if(ia==0&&ib==0&&ic==0) break; m[ia][ib]=ic; } for(int a=1;a<=n;a++){ for(int b=1;b<=n;b++){ for(int c=1;c<=n;c++){ for(int d=1;d<=n;d++){ dp[a][b][c][d]=max(max(dp[a][b-1][c][d-1],dp[a][b-1][c-1][d]),max(dp[a-1][b][c-1][d],dp[a-1][b][c][d-1]))+m[a][b]+m[c][d]; if(a==c&&b==d) dp[a][b][c][d]=dp[a][b][c][d]-m[a][b]; } } } } cout<<dp[n][n][n][n]; return 0; }
洛谷P1004方格取数 题解
猜你喜欢
转载自www.cnblogs.com/starlit-night/p/12537407.html
今日推荐
周排行