Ramsey定理
任意6个人中,一定有三个人互为朋友,或者互相不是朋友。
证明
这里我就不证明了。下面链接有证明
鸽巢原理
Ramsey定理
AC代码
#include <stdio.h>
#include <algorithm>
using namespace std;
const int maxn = 3000+5;
bool r[maxn][maxn];
int main() {
int T, n;
scanf("%d", &T);
while(T--) {
int rl;
scanf("%d", &n);
for(int i = 1; i < n; i++) {
for(int j = i+1; j <= n; ++j) {
scanf("%d", &rl);
r[i][j] = r[j][i] = rl;
}
}
if(n >= 6) {
printf("Bad Team!\n");
continue;
}
//暴力枚举三个人
bool ok = false;
for(int i = 1; i <= n; i++) {
for(int j = i+1; j <= n; j++) {
for(int k = j+1; k <= n; k++) {
if(r[i][j] == r[i][k] && r[i][j] == r[j][k]) {
ok = true;
}
if(ok) break;
}
if(ok) break;
}
if(ok) break;
}
if(ok) printf("Bad Team!\n");
else printf("Great Team!\n");
}
return 0;
}
如有不当之处欢迎指出!