codeforces Searching for Graph
2015-11-06 20:39
369 查看
Description
Let’s call an undirected graph of n vertices p-interesting, if the following conditions fulfill:
• the graph contains exactly 2n + p edges;
• the graph doesn’t contain self-loops and multiple edges;
• for any integer k (1 ≤ k ≤ n), any subgraph consisting of k vertices contains at most 2k + p edges.
A subgraph of a graph is some set of the graph vertices and some set of the graph edges. At that, the set of edges must meet the condition: both ends of each edge from the set must belong to the chosen set of vertices.
Your task is to find a p-interesting graph consisting of n vertices.
Input
The first line contains a single integer t (1 ≤ t ≤ 5) — the number of tests in the input. Next t lines each contains two space-separated integers: n, p (5 ≤ n ≤ 24; p ≥ 0; ) — the number of vertices in the graph and the interest value for the appropriate test.
It is guaranteed that the required graph exists.
Output
For each of the t tests print 2n + p lines containing the description of the edges of a p-interesting graph: the i-th line must contain two space-separated integers ai, bi (1 ≤ ai, bi ≤ n; ai ≠ bi) — two vertices, connected by an edge in the resulting graph. Consider the graph vertices numbered with integers from 1 to n.
Print the answers to the tests in the order the tests occur in the input. If there are multiple solutions, you can print any of them.
Sample Input
Input
1
6 0
Output
1 2
1 3
1 4
1 5
1 6
2 3
2 4
2 5
2 6
3 4
3 5
3 6
题意:给定n 和p ,我们需要构造一张点数为n ,边数为2n+p 的简单无向图,满足任意一个点数为k 的子图的边数不超过2k+p 。
建议参考:/article/2348635.html
Let’s call an undirected graph of n vertices p-interesting, if the following conditions fulfill:
• the graph contains exactly 2n + p edges;
• the graph doesn’t contain self-loops and multiple edges;
• for any integer k (1 ≤ k ≤ n), any subgraph consisting of k vertices contains at most 2k + p edges.
A subgraph of a graph is some set of the graph vertices and some set of the graph edges. At that, the set of edges must meet the condition: both ends of each edge from the set must belong to the chosen set of vertices.
Your task is to find a p-interesting graph consisting of n vertices.
Input
The first line contains a single integer t (1 ≤ t ≤ 5) — the number of tests in the input. Next t lines each contains two space-separated integers: n, p (5 ≤ n ≤ 24; p ≥ 0; ) — the number of vertices in the graph and the interest value for the appropriate test.
It is guaranteed that the required graph exists.
Output
For each of the t tests print 2n + p lines containing the description of the edges of a p-interesting graph: the i-th line must contain two space-separated integers ai, bi (1 ≤ ai, bi ≤ n; ai ≠ bi) — two vertices, connected by an edge in the resulting graph. Consider the graph vertices numbered with integers from 1 to n.
Print the answers to the tests in the order the tests occur in the input. If there are multiple solutions, you can print any of them.
Sample Input
Input
1
6 0
Output
1 2
1 3
1 4
1 5
1 6
2 3
2 4
2 5
2 6
3 4
3 5
3 6
题意:给定n 和p ,我们需要构造一张点数为n ,边数为2n+p 的简单无向图,满足任意一个点数为k 的子图的边数不超过2k+p 。
建议参考:/article/2348635.html
[code]#include <iostream> #include <cmath> using namespace std; int main() { int t; cin>>t; for(int k=0;k<t;k++) { int n,p,num=0; cin>>n>>p; int sum=2*n+p; for(int i=1;i<=n&&num<sum;i++) { for(int j=i+1;j<=n&&num<sum;j++) { num++; cout<<i<<" "<<j<<endl; } } } return 0; }
相关文章推荐
- 如何发表高水平论文 (转载)
- 快速排序的简单实现(Quick_Sort)
- Java Axis2 1.6.3+JDK1.7.0_13+Tomcat7.0.65+eclipse搭建web service
- SpringMVC 学习系列 (6) 之 数据验证
- 你必须知道的.NET之特性和属性
- KMP模板
- 关于手机屏幕信息的获取
- 13 Roman to Integer
- SpringMVC 学习系列 (5) 之 数据绑定 -2
- Kinect+Unity之手势识别初探
- C#实现插入排序算法(Insection Sort)
- RelativeLayout属性
- ul li span addClass removeClass
- swift 2.0 语法 函数
- swift 2.0 语法 字符串
- java的相关特性理解
- /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc
- SpringMVC 学习系列 (4) 之 数据绑定 -1
- swift 2.0 语法 字典
- swift 2.0 语法 数组