“玲珑杯”ACM比赛 Round #4 F -- My-graph【图的同构(构造)】

来源:互联网 发布:惊天战神 游戏源码 编辑:程序博客网 时间:2024/06/11 21:39

“玲珑杯”ACM比赛 Round #4

Start Time:2016-11-05 12:00:00 End Time:2016-11-05 17:00:00 Refresh Time:2016-11-06 22:00:19 Private

F -- 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

  图的同构看书上没有具体方法判断,给出结论吧:对于任意一个有 k 个顶点的且与自己互补的图,在它外面添加一根由 4 个新顶点组成的链条 x – y – z – w ,再把顶点 x 与所有 k 个顶点都相连,把 w 也与所有 k 个顶点都相连。容易看出,整个图现在就有 k + 4 个顶点了,并且这个新的图也和自己是互补的。


AC代码:

#include<cstdio>typedef long long LL;int main(){int T; scanf("%d",&T);while(T--) {    int N; scanf("%d",&N);LL ans=N*(N-1)>>1;printf((ans&1)?"no":"yes");puts("");}return 0;}

0 0
原创粉丝点击