感觉NK的题,无论是搜索,dp,字符串匹配都比不上找规律啊为自己的孱弱买单 。一开始想着八个点一个周期,来找找点之间的规律,结果一直没啥头绪,后来一看题解才知道,根本不需要考虑周期性,有更鲜明的规律,对坐标(x0,y0)
,设他的序号为s
- 其实就两条直线,
x=y
和y=x-2
,只有点在这两条直线上,才能判断位置。 - 对
x=y
上的点,如果x0,y0
是偶数,那么s=x0+y0
,否则s=x0+y0-1
- 对
y=x-1
上的点,如果x0
是偶数,那么s=x0+y0
,否则s=x0+y0-1
while (cin >> x >> y) {
ll res = -1;
if (x == y) {//在对角线上
if (x % 2 == 0)res = x + y;
else res = x * 2 - 1;
}
else if (x - y == 2) {
if (x % 2 == 0)res = x + y;
else res = x + y - 1;
}
if (res != -1)cout << res << endl;
else cout << "No Number" << endl;
}