zoukankan      html  css  js  c++  java
  • Codeforces 916C

    916C - Jamie and Interesting Graph

    思路:构造。

    对于1到n最短路且素数,那么1到n之间连2

    对于最小生成树,找一个稍微大点的素数(比1e5大)构造一个和为这个素数的最小生成树

    剩下的边都连1e9

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define pb push_back
    #define mem(a,b) memset(a,b,sizeof(a))
    
    /*const int N=1e5+5;
    const int M=1e7+7;
    vector<int>vc;
    bool not_prime[M];
    void prime(){
        for(int i=2;i<M;i++){
            if(!not_prime[i])vc.pb(i);
            for(int j=0;i*vc[j]<M;j++){
                not_prime[i*vc[j]]=true;
                if(i%vc[j]==0)break;
            }
        }
        cout<<vc[vc.size()-1]<<endl;//9999991
    }*/
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(0);
        //prime();
        int n,m,t=9999991;
        cin>>n>>m;
        if(n==2)cout<<2<<' '<<2<<endl;
        else cout<<2<<' '<<t<<endl;
        cout<<1<<' '<<n<<' '<<2<<endl;
        t-=2;
        for(int i=2;i<n;i++){
            if(i!=n-1)cout<<1<<' '<<i<<' '<<2<<endl,t-=2;
            else cout<<1<<' '<<i<<' '<<t<<endl;
        }
        m-=n-1;
        for(int i=2;i<=n;i++){
            if(m==0)break;
            for(int j=i+1;j<=n;j++){
                if(m==0)break;
                cout<<i<<' '<<j<<' '<<1000000000<<endl;
                m--;
                if(m==0)break;
            }
            if(m==0)break;
        }
        return 0;
    }
  • 相关阅读:
    linux 装mysql的方法和步骤
    Linux查看系统发行版本
    Spinner
    时间与日期选择器
    Linux目录处理命令
    开发Activity
    js属性操作(2)
    Js的属性操作(1)
    学习java Script的热身作业
    在Windows下搭建Android开发环境
  • 原文地址:https://www.cnblogs.com/widsom/p/8320622.html
Copyright © 2011-2022 走看看