谁能告诉我这是怎么回事
查看原帖
谁能告诉我这是怎么回事
1264592
IlIlIlIlIl楼主2024/9/17 10:48
#include<bits/stdc++.h>
using namespace std;
int n,m,a[201][201],ans=-9999,add;
bool b[201][201];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		a[i][0]=-9999;
	for(int i=1;i<=n;i++)
		a[i][m+1]=-9999;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>a[i][j];
	b[n+1][m/2+1]=1;
	for(int i=n;i>0;i--)
		for(int j=1;j<=m;j++)
			if(b[i+1][j-1]||b[i+1][j]||b[i+1][j+1])
				b[i][j]=1;
			else a[i][j]=-9999;
/*	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
			cout<<b[i][j]<<" ";
		cout<<"\n";
	}*/
	for(int i=n;i>0;i--)
		for(int j=1;j<=m;j++)
			if(b[i][j])
			{
				add=max(a[i+1][j],max(a[i+1][j-1],a[i+1][j+1]));
				a[i][j]+=add;
			}
	for(int i=1;i<=m;i++)
		ans=max(ans,a[1][i]);
	cout<<ans;
	return 0;
}

附:测试点8

输入:

200 1
51929 
23997 
58087 
79843 
-37820 
46246 
43393 
7911 
84801 
49817 
32410 
-70848 
16690 
-54308 
52261 
5206 
48565 
22469 
31141 
-61868 
-48992 
2982 
-45096 
73435 
-83328 
70074 
84502 
60267 
-80104 
38034 
-44492 
44182 
-77388 
38467 
-30640 
-64404 
-9084 
88629 
-31420 
28246 
8778 
-63500 
40627 
12398 
-6508 
22102 
33173 
86291 
27983 
80299 
-59184 
-836 
57898 
41954 
75934 
9279 
12663 
87135 
70147 
47123 
49550 
25690 
19854 
62927 
84810 
72310 
20019 
-44284 
68178 
27182 
71257 
-44748 
-3144 
4354 
-3232 
930 
40053 
-26672 
-41288 
87390 
40434 
-57828 
77037 
25994 
39550 
71322 
-57940 
58143 
16893 
44203 
82159 
33481 
-9376 
81347 
-79652 
86517 
66705 
7385 
73469 
79925 
-50876 
-59144 
83742 
78067 
5279 
7302 
61802 
74143 
85106 
36990 
-65604 
22098 
-86728 
29058 
20807 
47190 
-84540 
78045 
66883 
-23120 
-6228 
-35736 
-24816 
-88488 
-31744 
88218 
50511 
-55520 
82407 
36125 
59842 
37278 
-25040 
-84228 
6863 
42981 
-19872 
43289 
-60352 
-4860 
19746 
71046 
65047 
-72308 
87151 
-19012 
26207 
49387 
22754 
38379 
61369 
52289 
87647 
-20736 
36899 
31225 
28627 
60711 
38621 
39553 
13606 
53995 
24822 
49223 
-16944 
29998 
-37140 
2037 
72471 
76822 
16189 
-88480 
73469 
2102 
-15632 
16493 
28627 
22681 
37614 
30174 
-52788 
40007 
-87452 
71322 
64309 
82434 
42839 
-74284 
-85536 
-5052 
53321 
24730 
50466 
30139 
45407 
71941 
30065 
52746 
22726 
51597 

输出:

4041248

自己测的明明正确【哭】

2024/9/17 10:48
加载中...