蒟蒻求救……和题解一样 但是样例都过不了……

P1004 [NOIP2000 提高组] 方格取数

我知道哪里错了……qwq
by Dusker @ 2017-10-04 14:52:02


```cpp #include<bits/stdc++.h> using namespace std; int n,x,y,z,a[11][11]; int dp[11][11]; int main() { ``` cin>>n ```cpp while(cin>>x>>y>>z)a[x][y]=z; for(int k=2; k<=n*2; k++) for(int i=k-1; i>=1; i--) for(int j=k-1; j>=1; j--) { dp[i][j]=max(max(dp[i][j]dp[i-1][j-1]),max(dp[i-1][j],dp[i][j-1]))+a[i][k-i]; dp[i][j]+=a[j][k-j]*(i!=j); } printf("%d\n",dp[n][n]); return 0; } ``` **可能有错**
by lty2017 @ 2017-10-11 22:54:06


**正解** ```cpp #include<bits/stdc++.h> using namespace std; int n,x,y,z,a[11][11]; int dp[11][11]; int main() { cin>>n; while(cin>>x>>y>>z)a[x][y]=z; for(int k=2; k<=n*2; k++) for(int i=k-1; i>=1; i--) for(int j=k-1; j>=1; j--) { dp[i][j]=max(max(dp[i][j],dp[i-1][j-1]),max(dp[i-1][j],dp[i][j-1]))+a[i][k-i]; dp[i][j]+=a[j][k-j]*(i!=j); } printf("%d\n",dp[n][n]); return 0; } ```
by lty2017 @ 2017-10-11 22:54:50


**应该是... ...**
by lty2017 @ 2017-10-11 22:55:29


这是传纸条的代码
by 曦行夜落 @ 2018-02-28 19:15:17


|