hdu_5873_Football Games(xjb搞)

题目链接:hdu_5873_Football Games

题意:

有n个队,每个队都会给其他队打一场,赢一场得2分,平局得一分,输了不得分,然后给你全部比赛结束后的得分,问你是否有假分

题解:

可以知道每打一场分数总和会加2,然后奇数得分的个数是偶数个,0得分的个数最多一个,因为不可能两个队全部都是输,然后就这样xjb水过去了

 1 #include<bits/stdc++.h>
 2 #define F(i,a,b) for(int i=a;i<=b;++i)
 3 using namespace std;
 4 typedef long long ll;
 5 
 6 const int N=1e5+7;
 7 
 8 ll a[N];
 9 
10 int main(){
11     int t,n;
12     while(~scanf("%d",&t))
13     {
14         while(t--)
15         {
16             scanf("%d",&n);
17             ll sum=0,cnt=0,ze=0,fg=1,all=(ll)n*(n-1);
18             F(i,1,n)
19             {
20                 scanf("%lld",a+i);
21                 sum+=a[i];
22                 cnt+=a[i]&1;
23                 if(a[i]==0)ze++;
24                 if(a[i]>2*n-2)fg=0;
25             }
26             if(sum!=all||ze>1||cnt&1)fg=0;
27             if(fg)puts("T");else puts("F");
28         }
29     }
30     return 0;
31 }
View Code
原文地址:https://www.cnblogs.com/bin-gege/p/5860108.html