Codeforces Problem 402C. /403A. Serching for Graph

题目链接:http://codeforces.com/problemset/problem/402/C  

题意:给 n 个顶点,标号 1 ~n ,p 满足下面三个条件:

          1、这个图包含 2*n+p  条边

          2、没有环和多重边

          3、k(1~n)的顶点的子图最多有 2*n + p 条边

          输入: t  (t 组测试数据 1<=t <=5)每组数据包含  n 和 p 。(5 ≤ n ≤ 24; p ≥ 0; )

         输出: 对每组数据输出 2*n + p 条边,用相应顶点表示,每条边占一行。

思路:n 个顶点,最多有 n(n-1)/2 条边(即 1+2+...+(n-1)),这样只要输出前面的 2*n + p 条边就好。应该只是个考题意的题,简单构造。

Code:

#include <stdio.h>

int main(){
    int t, n, p;
    scanf("%d", &t);
    while(t--){
        scanf("%d%d", &n, &p);
        int m = 2*n + p;
        int i, j;
        for(i = 1; i <= n && m; ++i)
            for(j = i+1; j <= n && m; ++j, --m)
                printf("%d %d\n", i, j);
    }
    return 0;
}



       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值