标签:include nbsp == gcd ++ std turn ati c++
这道题是一道暴力题,看的数据量大是瞎胡人的,如果每个数都和1构成一条边实际上也就100000个数字,nlogn也一定能过去
然后就是注意m也不能太小,如果小于n-1就没法成图了。也不能太大,太大连不了那么多边
然后为了保证图的连通性,先把1和每个点都连一遍
#include<bits/stdc++.h> using namespace std; int ans1[100010],ans2[100010]; int tot; int main() { int n,m; scanf("%d%d",&n,&m); if(m<n-1) { printf("Impossible\n"); return 0; } int flag=0; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { if(__gcd(i,j)==1) { tot++; ans1[tot]=i; ans2[tot]=j; if(tot==m) { flag=1; break; } } } if(flag) break; } //printf("%d\n",flag); if(flag) { printf("Possible\n"); for(int i=1;i<=tot;i++) printf("%d %d\n",ans1[i],ans2[i]); } else { printf("Impossible\n"); } }
cf1009 D. Relatively Prime Graph
标签:include nbsp == gcd ++ std turn ati c++
原文地址:https://www.cnblogs.com/lishengkangshidatiancai/p/10322599.html