2016 大连网赛

2016 大连网赛

总结:弱爆了,一题都没做出

 

1006   Football Games    HDU 5873 

1、题意:团队比赛,赢的+2,输的+0,平+1。给出最后分数,看是否符合。

2、总结:好像是有个定理判定这种序列,

s​1​​+s​2​​+...+s​i​​≥i(i−1),对于所有1≤i≤n−1
s​1​​+s​2​​+...+s​n​​=n(n−1),对于i==n 

#include<iostream>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
#include<cstdio>
#define max(a,b) a>b?a:b
#define F(i,a,b) for (int i=a;i<=b;i++)
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=21000;

int main()
{
    int t,n;
    int a[N];
    while(~scanf("%d",&t))
    {
        while(t--){
            scanf("%d",&n);
            F(i,1,n)scanf("%d",&a[i]);
            sort(a+1,a+1+n);
            LL sum=0;
            int j;
            for(j=1;j<=n;j++){
                sum+=a[j];
                if(sum<(LL)j*(j-1))
                    break;
            }
            if(sum!=(LL)n*(n-1)||j<=n)
                puts("F");
            else puts("T");
        }
    }


    return 0;
}
View Code

 

1007  Friends and Enemies HDU 5874  

1、题意:矮人岛,每两个人之间要么是朋友,要么是敌人。如是朋友,两人至少要有一块石头颜色相同;如是敌人,就不能有任何石头颜色相同。

2、总结:都没搞懂

(1)OEIS上一个公式   

(2)转化成最大二分图,n个点的图,要求有尽量多的边,并且不存在三元环。这个边数就是mm的下界,对于一个nn个结点的没有三元环的图,边数最大的就是完全二分图。

#include<iostream>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
#include<cstdio>
#define max(a,b) a>b?a:b
#define F(i,a,b) for (int i=a;i<=b;i++)
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=10000;

int main()
{
    LL n,m;
    while(scanf("%lld%lld",&n,&m)!=EOF)
    {
        /*
        LL sum=(2*n*n+(n&1?-1:1))/8;   //IEOS上的公式
        if(sum>m)puts("F");
        else puts("T");
        */
        
        if(m>=n*n/4)puts("T");    //转化为最大二分图
        else puts("F");
    }

    return 0;
}
View Code

 

posted @ 2016-09-12 01:35  v9fly  阅读(212)  评论(0编辑  收藏  举报