1.题目链接。有n个人,他们之间要么是朋友关系,要么不是朋友关系,问是否存在大于或等于3个的团体,他们之间都是朋友关系或都不是朋友关系。根据Ramsey定理,满足存在三个人他们之间都是朋友或者都不是朋友最小的人数是6,所以大于等于6的就是Bad Team!,小于等于的直接矩阵暴力一下,n三方暴力即可。
#include<bits/stdc++.h>
using namespace std;
bool mp[3005][3005];
#pragma warning(disable:4996)
bool Check(int n)
{
for (int i = 1; i <= n; i++)
{
for (int j = i + 1; j <= n; j++)
{
for (int k = j + 1; k <= n; k++)
{
if (mp[i][j] == mp[j][k] && mp[j][k] == mp[i][k])
return true;
}
}
}
return false;
}
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n;
scanf("%d", &n);
for (int i = 1; i < n; i++)
{
for (int j = i + 1; j <=n; j++)
{
scanf("%d", &mp[i][j]);
mp[j][i] = mp[i][j];
}
}
if (n >= 6)
{
puts("Bad Team!");
continue;
}
if (Check(n))
{
puts("Bad Team!");
continue;
}
else
{
puts("Great Team!");
}
}
return 0;
}