hdu 5873

讨论

水题,只需要判断总分够不够以及是否有明显得分过多的队就可以了
但是比赛的时候一着急就没读完输入到底是怎么结束的,然后就疯狂的WA
所有队总分是N(N-1),因为完全图是N(N-1)/2条边,而每次比赛,都会产生2分,无论落在谁手里,而每个队只能和N-1个对手打,最多赢N-1场,得到2N-2分,超过这个数的都是不可能的
后来看了别人题解才发现这事

题解状态

124MS,1780K,653B,C++

题解代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define MAXN 20004
#define memset0(a) memset(a,0,sizeof(a))

int N, B[MAXN];
bool fun()
{
    int sum = 0, overwin = 0;//总分 得分明显超出上限的队伍数
    for (int p = 0; p < N; p++) {
        scanf("%d", &B[p]);//input
        sum += B[p];
        overwin += B[p] > 2 * N - 2;
    }
    if (sum != N*(N - 1) || overwin)
        return 0;
    return 1;
}
int main(void)
{
    //freopen("vs_cin.txt", "r", stdin);
    //freopen("vs_cout.txt","w",stdout);

    int times;
    while (~scanf("%d", &times))//input
        while (times--) {
            scanf("%d", &N);//input
            if (fun())
                printf("T\n");//output
            else
                printf("F\n");//output
        }
}

EOF

展开阅读全文
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值