• [CF1009D] Relatively Prime Graph


    Description

    我们将一个无向图称作互质图,当且仅当对于其中每一条边 ((v, u))(v)(u) 互质(也即 (GCD(v,u)=1))。当两个顶点之间没有边时不需要考虑。顶点从 (1) 开始标号。

    现在给你 (n) 个顶点和 (m) 条边,要求你建立一个无重边和自环并且连通的互质图,或者判定无法构造。

    Solution

    设将每条边描述为 ((u,v)),满足 (u<v),那么我们从小到大枚举 (u),再从小到大枚举 (v),能连就连

    复杂度与 (varphi) 函数的前缀和有关,不妨将其视作 (O(n log n))

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    const int N = 1000005;
    
    int n,m;
    vector <pair<int,int> > out;
    
    signed main() {
        ios::sync_with_stdio(false);
        cin>>n>>m;
        for(int i=1;i<=n;i++) {
            if(out.size()>m) continue;
            for(int j=i+1;j<=n;j++) {
                if(out.size()>m) continue;
                if(__gcd(i,j)==1) {
                    out.push_back({i,j});
                }
            }
        }
        if(out.size()<m || n>m+1) {
            cout<<"Impossible";
        }
        else {
            cout<<"Possible"<<endl;
            for(int i=0;i<m;i++) cout<<out[i].first<<" "<<out[i].second<<endl;
        }
    }
    
  • 相关阅读:
    利用performSelectorInBackground和performSelectorOnMainThread实现多线程刷新UI
    iOS之NSCocoaErrorDomain Code=3840
    iOS之原生地图与高德地图
    iOS之Storyboard References
    iOS之内购
    iOS之上线被拒
    iOS之可拖拽重排的CollectionView
    iOS之内购
    ios专题
    ios专题
  • 原文地址:https://www.cnblogs.com/mollnn/p/12788089.html
Copyright © 2020-2023  润新知