hdu 5873 Football Games(思维题)

来源:互联网 发布:java ftpclient 卡住 编辑:程序博客网 时间:2024/05/01 14:26

点击打开链接

#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int M=20010;int a[M];int main(){int t;while(scanf("%d",&t)!=EOF){while(t--){int m;cin>>m;long long sum[M];memset(sum,0,sizeof(sum)); for(int i=1;i<=m;i++){cin>>a[i];}sort(a+1,a+m+1);//任意i个人得分之和为i*(i-1) 最小的i个人满足其他自然满足 int flag=1; for(int i=1;i<=m;i++){if(i==1)sum[i]=a[i];elsesum[i]=sum[i-1]+a[i];if(i>=2&&sum[i]<i*(i-1)) // 1<=i<=m-1 则i个人的得分至少为 i*(i-1) 因为:i个人还要和i之后的比赛 {flag=0;break;}}if(sum[m]!=m*(m-1)) //每场比赛两人得分之和为2 总共C(m,2)=(m*(m-1))/2场比赛 所以i个人比赛得分为 i*(i-1) {flag=0;}if(!flag) {cout<<"F";}elsecout<<"T";cout<<endl;}}return 0;} 


0 0
原创粉丝点击