hdu5873 Football Games
来源:互联网 发布:找男妓的体验知乎 编辑:程序博客网 时间:2024/06/06 05:25
题目:
有 m 组球队, 每组有 b 支球队. 每组之间两两踢球, 赢得加2分, 平手各加1分, 输的不得分. 现在告诉你每组里面每只球队最后的分数, 问这个分数序列是否正确.
分析:
如果没有平手选项, 赢得加一分的话, 可以用Landau’s Theorem判定, 这题稍微修改下这个定理就好了. 令
s1+s2+...+si≥i(i−1) , 对于所有1≤i≤n−1 s1+s2+...+sn=n(n−1) .
Landau’s Theorem内容:
一个长度为n的序列
代码:
#include <iostream>#include <algorithm>#include <queue>#include <stack>#include <vector>#include <map>#include <set>#include <cmath>#include <cstdlib>#include <cstring>#include <cstdio>using namespace std;#define ms(a,b) memset(a,b,sizeof(a))#define lson rt*2,l,(l+r)/2#define rson rt*2+1,(l+r)/2+1,rtypedef unsigned long long ull;typedef long long ll;const int MAXN = 2e5 + 5;const double EPS = 1e-8;const int INF = 0x3f3f3f3f;const int MOD = 1e9 + 7;int a[MAXN],n;int main() { int T; while (~scanf("%d", &T)) { while (T--) { scanf("%d", &n); ll tot = 0; int ok = 1; for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); tot += a[i]; } if (tot != (ll)n * (n - 1)) ok = 0; else { ll res = 0; sort(a+1,a+n+1); for (int i = 1; i <= n; i++) { res += a[i]; if(res < (ll)i*(i-1)){ ok = 0; break; } } } if(ok) puts("T"); else puts("F"); } } return 0;}
阅读全文
0 0
- HDU5873 Football Games
- hdu5873 Football Games(模拟)
- HDU5873-Football Games
- HDU5873 Football Games
- HDU5873 Football Games
- hdu5873 Football Games
- hdu5873 Football Games(数学)
- Hdu5873——Football Games(模拟)
- hdu5873 Football Games(数学)(Landau's Theorem )
- HDU5873 football game
- HDU58739(Football Games)思维
- hdu 5873 Football Games
- HDU 5873 Football Games .
- HDU 5873 Football Games 【】
- hdu-5873-Football Games
- hdu 5873 Football Games
- hdu 5873 Football Games
- HDU 5873 Football Games【】
- ------------------------------------
- HTML网页布局方式总结 |有码有真相|
- Spring 面向切面编程AOP
- 检测链表中的环
- 【编译原理】第四章作业
- hdu5873 Football Games
- CodeForces
- 目前最新jquery-ui-1.12.1的使用以及如何添加到自己的项目中去
- Servlet 学习总结
- Java 单例模式【懒汉与饿汉】
- Redis
- springmvc中@RequestHeader注解使用
- 函数式编程
- linux作业练习