牛客网-Number Steps【找规律】

在这里插入图片描述

感觉NK的题,无论是搜索,dp,字符串匹配都比不上找规律啊为自己的孱弱买单 。一开始想着八个点一个周期,来找找点之间的规律,结果一直没啥头绪,后来一看题解才知道,根本不需要考虑周期性,有更鲜明的规律,对坐标(x0,y0),设他的序号为s

  • 其实就两条直线,x=yy=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;
	}
发布了271 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/csyifanZhang/article/details/105703501
今日推荐