SD 一轮集训 day4 圣城鼠

   非常强的构造题。

    很显然的是我们要构造一个类似菊花图的东西,因为这样的话两点之间路径的点数会非常少,很容易满足第二个条件。

    但是因为直接菊花图的话会不满足第一个条件,,,所以我们可以构造一个类菊花图。

(题解太神了,%一发题解)

#include<cstdio>
#define ll long long
using namespace std;
int main(){
	int k; scanf("%d",&k);
	printf("%d\n",k<<1);
	for(int i=1;i<=k;i++){
		printf("%d %d\n",i*2-1,i*2);
		for(int j=1;j<i;j++) printf("%d %d\n%d %d\n",i*2-1,j*2-1,i*2,j*2);
		for(int j=i+1;j<=k;j++) printf("%d %d\n%d %d\n",i*2-1,j*2,i*2,j*2-1);
	}
	return 0;
}

  

猜你喜欢

转载自www.cnblogs.com/JYYHH/p/9176101.html