链接
传送门
题意
给出的矩阵,最初在最左上的点,可以像上下左右4个方向移动,每次移动步(每次移动的步数不能相同),可以删除任意数量的必然无法走到的卡片。然后继续移动,直至只剩下一张卡片。
思路
每次都走奇数步,根据奇偶性,可知,不会走到与当前格子在同一斜线上的格子,然后删除最左上的一条斜线上的所有纸片。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include <cstdio> #include <cstring> #include <algorithm> using namespace std;
int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); int k = (n - 1) << 1; for (int i = 0; i < k; ++i) { printf("%d", 2 * (n + i) + 1); for (int j = 0; j <= i; ++j) { if (i - j >= n || j >= n) { continue; } printf(" %d", j * n + i - j + 1); } puts(""); } if (t) { puts(""); } } return 0; }
|