hdu 6125 不知道新不新的解

加粗样式我是题目直达车

作为小白的我,花了四十分钟解了这一道签到题(没办法,不知道鸽巢原理和拉姆齐定理)

写完后看了一些题解,感觉我的思路应该算是一个新的想法,就在这里说说我的想法吧。

首先,分析题意得到两条结论:
1、我的朋友他们互不认识
2、我不认识的人必须相互认识
(其实推到这儿就可以有基本的想法了:人一多就可能永远无法满足条件,这时候就可以骗分了

于是乎,有1,2引申出两条结论:
一个人的朋友数量不可以达到3,证:如果朋友数量为3,由1得这三个人相互不认识–》违反了题目第一条规矩(互相不认识的人数不能超过3。
一个人不认识的人的个数也不可以达到3,证:如果不认识人数量为3,由2得这三个人互相认识–》违反了题目的第二条规矩(互相认识的人数不能超过3。

好了题目分析完毕,上代码~

#include <iostream>

using namespace std;

int main(){
    
    
    int t;
    cin>>t;
    while(t--){
    
    
        int n;
        cin>>n;
        int coun0,coun1,p = 0,x;
        for(int i=n-1;i>0;i--){
    
    
            coun0 = coun1 = 0;
            for(int j=0;j<i;j++){
    
    
                cin>>x;
                if(x) coun1++;
                else coun0++;
            }
            if(coun1>2||coun0>2)
                p = 1;
        }
        if(p) cout<<"Bad Team!"<<endl;
        else cout<<"Great Team!"<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_46216585/article/details/109731271
hdu