一次由 System.out.println() 引起的 MLE&TLE
P5461 赦免战俘,看题第一感觉就是递归处理,不出意外的成功写出了递归解法,然后高高兴兴的就在 OJ 上提交,然后就是莫名其妙的 MLE。
原始代码:
// 递归函数
public static void f(int[][] a, int x1, int x2, int y1, int y2) {
if (x2-x1==1 && y2-y1==1) {
a[x1][y1] = 0;
return;
} else {
for (int i = x1; i <= (x2-x1)/2+x1; ++i) {
for (int j = y1; j <= (y2-y1)/2+y1; ++j) {
a[i][j] = 0;
}
}
f(a, (x2-x1)/2+x1+1, x2, y1, (y2-y1)/2+y1);
f(a, x1, (x2-x1)/2+x1, (y2-y1)/2+y1+1, y2);
f(a, (x2-x1)/2+1+x1, x2, (y2-y1)/2+1+y1, y2);
}
}
第一次尝试结果:
