您的位置:首页 > 其它

HDU 5874 Friends and Enemies (二分图 读不懂题系列)

2016-09-11 16:07 435 查看

题意:

给你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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: