• 思维构造——cf1090D


    /*
    只要找到两个没有关系的点即可 
    */
    #include<bits/stdc++.h>
    using namespace std;
    #define maxn 100005
    long long n,m;
    int a[maxn],b[maxn];
    vector<int>G[maxn];
    int main(){
        cin>>n>>m;
        if(n==1){
            puts("NO");
            return 0;
        }
        if(n*(n-1)/2<=m){
            puts("NO");
            return 0;
        }
        puts("YES");
        
    /*    if(n==2){
            puts(" ");
            puts("1 2");
            puts("1 1");
            return 0;
        }
    */     
        for(int i=1;i<=m;i++){
            int a,b;
            cin>>a>>b;
            G[a].push_back(b);
            G[b].push_back(a);
        }
        for(int i=1;i<=n;i++)G[i].push_back(i);
        for(int i=1;i<=n;i++)
            sort(G[i].begin(),G[i].end());
        
        int pos1,pos2;
        for(int i=1;i<=n;i++){
            if(G[i].size()==n)continue;
            for(int j=1;j<=G[i].size();j++)
                if(j!=G[i][j-1]){
                    pos1=i;pos2=j;
                    break;
                }
        }
        int i=0;
        for(int j=1;j<=n;j++)
            if(j==pos1)cout<<n<<" ";
            else if(j==pos2)cout<<n-1<<" ";
            else cout<<++i<<" ";
        puts("");
        i=0;
        for(int j=1;j<=n;j++)
            if(j==pos1 || j==pos2)cout<<n-1<<" ";
            else cout<<++i<<" ";
    }
  • 相关阅读:
    1104
    HDU 1575
    hdu 1142(DFS+dijkstra)
    hdu 1015(DFS)
    hdu 1342(DFS)
    hdu 1181(DFS)变 形 课
    hdu 1312(DFS)
    hdu 5976 Detachment
    hdu 5795
    UVa 11729
  • 原文地址:https://www.cnblogs.com/zsben991126/p/10928326.html
Copyright © 2020-2023  润新知