codeforces#236_div2_C Searching for Graph

题目地址:cf#236_div2_C

题目意思:

给你n,p 

要你构造一个有2n+p条边的图,使得,每一个含k个结点子图中,最多有2*k+p条边。


额,比赛的时候根据样例yy的

代码:

#include<iostream>
#include<vector>

using namespace std;

struct node
{
    int a;
    int b;
    
};

vector<node> v;
int main()
{
    int cas;
    cin>>cas;
    
    int n,p;
    
    
    while(cas--)
    {
        v.clear();
        
        cin>>n>>p;
        for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++)
            {
                node  nod;
                nod.a=i;
                nod.b=j;
                
                v.push_back(nod);
            }
        for(int i=0;i<2*n+p;i++)
        {
            cout<<v[i].a+1<<' '<<v[i].b+1<<endl;
        }
        
    }
}


关于证明这个构造就能满足,想好了以后更新文章。

posted on 2014-03-17 03:00  814jingqi的ACM  阅读(95)  评论(0编辑  收藏  举报