题意,岛上有好多人,每两个人不是朋友就是敌人,若两个人是朋友,他们的项链上至少有一颗石头是同颜色的,若是敌人则项链上没有一颗颜色相同的石头,告诉你人数和石头的颜色总数,问你能否给每个人配项链。把他想象成一个图,每个人是一个节点,然后每有一个人和他是朋友,就把两个人相连,代表着他们有着相同颜色的石头,如果有一个三角形,那么这个子图最少只需要一种颜色的石头就够了,那么怎么样增加石头的种类呢?方法就是尽量减少三角形的数量,二分图是符合这个条件的,不存在三角形,同时也使得边最多。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
long long n, m;
int main(void)
{
while (scanf("%lld%lld", &n, &m) != EOF)
{
if (m >= (n*n) / 4)
printf("T\n");
else
printf("F\n");
}
return 0;
}