题意:
给你n个人,他们两两之间是朋友或者敌人,每个人都可以带一个由数目不定的石子组成的项链,是朋友的话项链至少有一个石子颜色相同,是敌人的话,项链的颜色每个都必须不一样。可以不带项链。给你m个颜色的石头,现在问你,这m个石头是否一定够用?
思路:
考虑最坏的情况:建图,在是朋友的两个点上连上边,但不能有环(否则会减少需要的石头数),也就是每有一条边就需要多一种颜色,所以尽可能的在不构成三元环的情况下,构造最多的边,即完全二分图(两边的点数尽可能接近)。
AC代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m)){
long long int temp = n/2 * (n - n/2);
if(m >= temp)
puts("T");
else
puts("F");
}
return 0;
}