CodeForces - 1009D Relatively Prime Graph

题面在这里!

 

    直接暴力找点对就行了,可以证明gcd=1是比较密集的,所以复杂度略大于 O(N log N)

 

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+5;

int gcd(int x,int y){ return y?gcd(y,x%y):x;}

int n,m,u[N+5],v[N+5];

int main(){
	scanf("%d%d",&n,&m);
	if(n-1>m){ puts("Impossible"); return 0;}
	for(int i=2;i<=n;i++) u[m]=i,v[m--]=i-1;
	for(int i=3;i<=n&&m;i++)
	    for(int j=i-2;j&&m;j--) if(gcd(i,j)==1) u[m]=i,v[m--]=j;
	if(m){ puts("Impossible"); return 0;}
	puts("Possible");
	for(int i=1;u[i];i++) printf("%d %d\n",u[i],v[i]);
	return 0;
}

  

posted @ 2018-07-15 14:58  蒟蒻JHY  阅读(467)  评论(0编辑  收藏  举报