Vertex Cover
来源:互联网 发布:vmware虚拟机备份软件 编辑:程序博客网 时间:2024/06/05 10:03
Vertex Cover
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 256000/256000 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0
Special Judge
Problem Description
As we know, minimumvertexcover is a classical NP-complete problem. There will not be polynomial time algorithm for it unlessP=NP .
You can see the definition of vertex cover in https://en.wikipedia.org/wiki/Vertex_cover.
Today, little M designs an "approximate" algorithm for vertex cover. It is a greedy algorithm. The main idea of her algorithm is that always choosing the maximum degree vertex into the solution set. The pseudo code of her algorithm is as follows:
We assume that the labels of the vertices are from 1 to n.
As a theory computer scientist, you immediately find that it is a bad algorithm. To show her that this algorithm dose not have a constant approximate factor, you need to construct an instance of vertex cover such that the solution get by this algorithm is much worse than the optimal solution.
Formally, your program need to output a simple undirected graph of at most500 vertices. Moreover, you need to output a vertex cover solution of your graph. Your program will get Accept if and only if the solution size get by the above algorithm is at least three times as much as yours.
You can see the definition of vertex cover in https://en.wikipedia.org/wiki/Vertex_cover.
Today, little M designs an "approximate" algorithm for vertex cover. It is a greedy algorithm. The main idea of her algorithm is that always choosing the maximum degree vertex into the solution set. The pseudo code of her algorithm is as follows:
We assume that the labels of the vertices are from 1 to n.
for (int i = 1; i <= n; ++i) { use[i] = false; deg[i] = degree of the vertex i;}int ans = 0;while (true) { int mx = -1, u; for (int i = 1; i <= n; ++i) { if (use[i]) continue; if (deg[i] >= mx) { mx = deg[i]; u = i; } } if (mx <= 0) break; ++ans; use[u] = true; for (each vertex v adjacent to u) --deg[v];}return ans;
As a theory computer scientist, you immediately find that it is a bad algorithm. To show her that this algorithm dose not have a constant approximate factor, you need to construct an instance of vertex cover such that the solution get by this algorithm is much worse than the optimal solution.
Formally, your program need to output a simple undirected graph of at most
Input
There is no input.
Output
First, output two integer n and m in a line, separated by a space, means the number of the vertices and the number of the edges in your graph.
In the nextm lines, you should output two integers u and v for each line, separated by a space, which denotes an edge of your graph. It must be satisfied that1≤u,v≤n and your graph is a simple undirected graph.
In the next line, output an integerk(1≤k≤n) , means the size of your vertex cover solution.
Then outputk lines, each line contains an integer u(1≤u≤n) which denotes the label of a vertex in your solution. It must be satisfied that your solution is a vertex cover of your graph.
In the next
In the next line, output an integer
Then output
Sample Output
4 41 22 33 44 1213HintThe sample output is just to exemplify the output format.
阅读全文
0 0
- Vertex Cover
- Vertex Cover
- Vertex Cover
- set cover和vertex cover
- SPOJ 1435. Vertex Cover
- Vertex Cover问题
- vertex cover approximate algorithm
- SCU4439-Vertex Cover
- SCU-4439-Vertex Cover
- HDU6150 Vertex Cover
- 【HDU6150】Vertex Cover (构造)
- hdu 6150 Vertex Cover
- 1134. Vertex Cover (25)
- 1134. Vertex Cover (25)
- 1134. Vertex Cover (25)
- 1134. Vertex Cover (25)
- 1134. Vertex Cover (25)
- 1134. Vertex Cover (25)
- codeforces 850C dfs
- markdown实现首行缩进
- 475. Heaters
- win8系统安装.net Framework3.5
- JavaScript是一门怎样的语言
- Vertex Cover
- [Java]一个简单的对象池
- 引用左值和引用右值
- jdbcUtil封装的工具类
- (超详细)从零开始安装与配置hadoop完全分布式环境
- Linux邮件系统
- ajax对xml的信息接收与发送
- 欢迎使用CSDN-markdown编辑器
- Party