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");
}
}