HDU - 5874 Friends and Enemies(思维)
生活随笔
收集整理的這篇文章主要介紹了
HDU - 5874 Friends and Enemies(思维)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給出m個人和n個顏色,規定兩個人之間,不是朋友就是敵人。每個人都有一條項鏈,項鏈上有著沒有數量上限的彩色鵝卵石。每個人兩個朋友之間必須有至少一種相同顏色的鵝卵石,每兩個敵人之間不能有任何一種顏色相同的鵝卵石,給出m和n,判斷能不能滿足所有的情況。
題目分析:讀完題后,我們可以通過分析最差的情況,也就是最極限的情況,來判斷另一個值是在邊界之內還是在邊界之外,從而判斷兩個值是否滿足關系,如果要考慮最差的情況,可以考慮成完全二分圖,也就是將m個人,盡可能等分地分到左側和右側兩堆之中,然后左側的任意一個人都要和右側的每一個人交朋友,與此同時左側中的每兩個人之間都是敵人關系,這樣可以保證每個左側的人和右側的人交朋友時,都會增加不同顏色的鵝卵石,這樣一來求出左堆中的點和右堆中的點最多能連成多少條邊即可,也就是左側的點數(m/2)乘以右側的點數(m-m/2)就是得到的最大的顏色種類,在去和題目中給出的顏色數量比較就好了。
直接上代碼了,一個公式出結果:
#include<iostream> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<cstdio> using namespace std; typedef long long LL;const int inf=0x3f3f3f3f; const int N=25;int main() {LL n,m;while(scanf("%lld%lld",&m,&n)!=EOF){if((m/2)*(m-m/2)>n)cout<<"F"<<endl;elsecout<<"T"<<endl;}return 0; }?
總結
以上是生活随笔為你收集整理的HDU - 5874 Friends and Enemies(思维)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU - 5875 Function(
- 下一篇: HDU - 5876 Sparse Gr