图论&数学:拉姆齐(Ramsey)定理

图论&数学:拉姆齐(Ramsey)定理本文探讨了拉姆齐定理的基本概念及其应用 特别是在解决 6 人中是否存在 3 人相互认识或不认识的问题上

大家好,欢迎来到IT知识分享网。

拉姆齐(Ramsey)定理是要解决以下的问题:要找这样一个最小的数n,使得n个人中必定有k个人相识或l个人互不相识

我们所知道的结论是这样的

6 个人中至少存在3人相互认识或者相互不认识。

该定理等价于证明这6个顶点的完全图的边,用红、蓝二色任意着色,必然至少存在一个红色边三角形,或蓝色边三角形

HDU6152

给出 n 个人之间的关系,如果其中有三个人互相认识或者互相不认识,则输出 Bad Team! ,否则输出 Great Team! 

当人数大于等于 6 时其结果一定是 Bad Team! 

而对于 n < 6 的情况,实际上需要求图的最大团点的个数是否大于 3 

 1 #include<cstdio>  2 #include<cstring>  3 int n;  4 int a[10][10];  5 int main()  6 {  7 int T,t;  8 scanf("%d",&T);  9 while(T--) 10  { 11 scanf("%d",&n); 12 memset(a,0,sizeof(a)); 13 for(int i=1;i<n;i++) 14 for(int j=i+1;j<=n;j++) 15  { 16 scanf("%d",&t); 17 if(t&&n<6) a[i][j]=a[j][i]=1; 18  } 19 if(n>=6) 20  { 21 puts("Bad Team!"); 22 continue; 23  } 24 int f=0; 25 for(int i=1;i<=n;i++) 26 for(int j=i+1;j<=n;j++) 27 for(int k=j+1;k<=n;k++) 28 if(a[i][j]&&a[i][k]&&a[j][k]) 29  { 30 f=1; 31 break; 32  } 33 if(f) puts("Bad Team!"); 34 else puts("Great Team!"); 35  } 36 return 0; 37 }

 

转载于:https://www.cnblogs.com/aininot260/p/9584219.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/156874.html

(0)
上一篇 2025-02-09 18:05
下一篇 2025-02-09 18:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信