在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1 #include<iostream> 2 using namespace std; 3 const int maxn=30; 4 int n,px,py; 5 int a[maxn][maxn],f[maxn][maxn]; 6 7 void get_prepare() 8 { 9 cin >> n; 10 for (int i=0;i<n;i++) 11 for (int j=0;j<=i;j++){ 12 cin >> a[i][j]; 13 f[i][j]=a[i][j]; 14 } 15 px=n/2; 16 py=--px; 17 for (int i=0;i<=px;i++) {if (i!=py) a[px][i]=-65536;} 18 } 19 20 int answer() 21 { 22 for (int i=1;i<n;i++) 23 for (int j=0;j<=i;j++){ 24 if (f[i-1][j]+a[i][j]>f[i][j]) f[i][j]=f[i-1][j]+a[i][j]; 25 if (j-1>=0 && f[i-1][j-1]+a[i][j]>f[i][j]) f[i][j]=f[i-1][j-1]+a[i][j]; 26 } 27 int max=0; 28 for (int i=0;i<n;i++) if (f[n-1][i]>max) max=f[n-1][i]; 29 return max; 30 } 31 int main() 32 { 33 get_prepare(); 34 cout << answer() << endl; 35 return 0; 36 } 发现对于边界的考虑必须周全!这一点在我用pascal写的时候还不够明显,但当我手测数据全队、交上两次全WA的时候我就明白了…… |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论