Codeforces Round #518 (Div. 2): F. Knights(神题)

版权声明:本文为博主原创文章,你们可以随便转载 https://blog.csdn.net/Jaihk662/article/details/83378542

题意:

一个无限大的棋盘,初始往这个棋盘中放n个骑士(骑士走日字,和马一样),之后如果存在一个点可以被4个骑士一步到达,那么就往这个格子上再放一个马,并且无限继续下去,直到不存在任意一个点可以被4个骑士一步到达

可以证明上述过程一定会停止,问如何放置初始的n个骑士,使得最后棋盘上有至少n²/10个骑士

思路:

代码如下:

#include<stdio.h>
int main(void)
{
	int n, i;
	scanf("%d", &n);
	for(i=1;i<=n*2/3;i++)
		printf("0 %d\n", i);
	for(i=1;i<=n-n*2/3;i++)
		printf("3 %d\n", i*2);
	return 0;
}

是的就是这么短

而这题居然是整场div2最难的题,最终也只过了1个

猜你喜欢

转载自blog.csdn.net/Jaihk662/article/details/83378542