码迷,mamicode.com
首页 > 其他好文 > 详细

cf1009 D. Relatively Prime Graph

时间:2019-01-26 11:15:50      阅读:209      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!