您的位置:首页 > 理论基础 > 计算机网络

2016 大连网络赛 HDU 5874 Friends and Enemies【思维】

2016-09-11 23:19 399 查看
题目大意: 

就是有M个人N种颜色的石头 M个人中每两个人 不是朋友就是敌人 

现在他们每个人要用石头要串一条项链 要求是 

1.朋友之间的项链至少有一个相同颜色的石头 

2.敌人之间没有颜色相同的石头 

3.项链可以使空的 就是不串石头 

问N种颜色的石头能不能满足这M个人

解题思路: 

比赛的时候队友说是二分图 然后让我毫不犹豫的给否定了 然后就GG了..   谁能告诉我这是一种什么样的体验.. 网络赛再次坑了队友一波..  O(T_T)O

看题吧  问能不能满足 肯定是要和最坏的情况比较  也就是求最坏的情况下需要多少种颜色的石子 

根据两个人的关系只有朋友和敌人这点 就可以相像成一个二分图了 分别在两侧的人是朋友 (比赛的时候居然想成了同侧的是朋友 就这样吧队友坑了)  这样的话 就是求一个完全二分图的边数有多少就行了    

因为M个人 想要边数最多 所以尽量均分 左右两边个一般就行了

这样的话 边数就是m/2*(m-m/2); 

之后跟N比一下就好了 。。 

#include <bits/stdc++.h>
using namespace std;

int main()
{
LL m,n;
while(~scanf("%I64d %I64d",&m,&n))
{
LL ans = m/2*(m-m/2);

if( ans <=  n)  puts("T");
else           puts("F");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: