当要求开图的数据量如下时:
int g[1005][1005];
int dp1[1005][1005], dp2[1005][1005];
但凡放一个二维数组到方法体中都会崩溃,可能是段溢出。
但凡使用一个memset(g,0,sizeof(g));都会超时的
此时总结两个应对策略:
1.使用完后马上清空:
for(int i = 0 ; i < n; i++){
for(int j = 0 ; j< m; j++){
cin >> g[i][j];
dp1[i][j] = dp2[i][j] = g[i][j];
//顺路清空:
g[i][j] = 0;
}
}
2.不清空,啥也不用做
道理:因为每一次输入的n,m是固定的,也就是给的每一张图的大小范围是固定的,每一次访问的时候都是在0--n和0--m之间,读入数据也是覆盖0---n*m的图,处理数据也是在这个范围内,所以每一次之间是不相互影响的。因此可以啥也不用做。