2016 大连网赛
2016 大连网赛
总结:弱爆了,一题都没做出
1006 Football Games HDU 5873
1、题意:团队比赛,赢的+2,输的+0,平+1。给出最后分数,看是否符合。
2、总结:好像是有个定理判定这种序列,
s1+s2+...+si≥i(i−1),对于所有1≤i≤n−1
s1+s2+...+sn=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; }
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; }