【玲珑杯 1051】【构造】My-graph

来源:互联网 发布:奥斯维辛集中营 知乎 编辑:程序博客网 时间:2024/05/29 14:48

传送门:http://www.ifrog.cc/acm/problem/1051

思路:

如果一个图有n个顶点,有2n条可能的边。显然,一个图要想和自己互补,它里面的连线数必然是 2n2, 且其必须是偶数。即可以被4k 和 
4k+1
整除 的数。那么这个条件是充分的吗?
接下来,我们将会构造性地说明,对于上述的每一个 n ,顶点数为 n 的图都确实有可能和自己互补。当 n = 1 时,整个图只有 1 个顶点,没有任何连线,根据定义,它和它自己是互补的。当 n = 4 时,一条简单的“链”便满足要求:不妨把这 4 个顶点分别记作 x 、 y 、 z 、 w ,那么 x – y – z – w 的补图就是 y – w – x – z ,整个图的本质结构并未发生改变。
另外,对于任意一个有 k 个顶点的且与自己互补的图,在它外面添加一根由 4 个新顶点组成的链条 x – y – z – w ,再把顶点 x 与所有 k 个顶点都相连,把 w 也与所有 k 个顶点都相连。容易看出,整个图现在就有 k + 4 个顶点了,并且这个新的图也和自己是互补的。
因此,我们就可以从 n = 1 和 n = 4 的情形出发,借助上面的扩展方法,依次得到 n = 5, n = 8, n = 9, n = 12, … 的构造。


代码:

#include <iostream>#include <stdio.h> using  namespace  std;int  main(){  int T;  scanf("%d", &T);  while(T--){    int n;    scanf("%d", &n);    if(n % 4 <= 1)puts("yes");    else puts("no");   }  return 0;}

描述:

1051 - My-graph

Time Limit:1s Memory Limit:64MByte

Submissions:359Solved:178

DESCRIPTION

In graph theory, the inverse of a graph GG is a graph HH on the same vertices such that two distinct vertices of HH are adjacent if and only if they are not adjacent in GG.
My-graph is the graph that it's inverse graph is an isomorphism graph of itself.

(This is a example of My-graph has 5 nodes).
Now comes the problem: Do you have a way to make a My-graph that has nn nodes?

INPUT
There are multiple test cases.The first line is a number T (T 100T ≤100), which means the number of cases.For each case, one integer n(2n104)n(2≤n≤104) means the nodes you have initially.
OUTPUT
If you have at least one way to make it , please output "yes".If there is no way, output "no".
SAMPLE INPUT
225
SAMPLE OUTPUT
noyes
SOLUTION
“玲珑杯”ACM比赛 Round #4

0 0
原创粉丝点击