HDU5874

HDU5874 - Friends and Enemies


题意:m个人,n种颜色的石头,两个人不是朋友就是敌人,朋友之间至少有一个同种颜色的石头,敌人之间不能有相同的石头,问用最多种的石头的情况下,n能否满足要求

做法:通过构造发现,对于一张完全的二分图来说,两个集合之间的边都会对答案贡献1,那么构造一组边最多的二分图即可,把(frac{m}{2})的石头放在左边,剩下的放在右边即可。

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll n, m;
int main() {
    while(scanf("%lld%lld",&m,&n)!=EOF) {
        if(n >= (m/2)*(m - m/2)) puts("T");
        else puts("F");
    }
}
原文地址:https://www.cnblogs.com/RRRR-wys/p/9704079.html