Educational Codeforces Round 104 (Rated for Div. 2) C. Minimum Ties(构造+规律)

有 n 支队伍,每两支队伍之间都要进行一场比赛,胜利的队伍得 3 分,失败的队伍不得分,平局各得 1 分,比赛结束后,一共进行 n*(n-1)/2 场比赛,要求最后所有队伍的得分相同,构造每场比赛的胜利情况

x 与 y 比赛 ,x 胜利表示为 1,y 胜利表示为 -1,平局表示为 0

一开始忽略平局双方都要得分,但是平局时对最后的结果仍然有影响,打表可以发现

当 n 为 4 时,对局分别为 

121
130
14-1
231
240
34-1

当 n 为 5 时,对局分别为

121
131
14-1
15-1
231
241
25-1
341
351
451

规律如上所示,自己可以打一下 n 为 6 的表再找一下规律

const int N=1e5+5;

    int n,m,t;
    int i,j,k;
    int a[N];

int main()
{
    //IOS;
    rush(){
        sd(n);
        if(n&1){
            int res=n-1>>1;
            for(int i=1;i<n;i++){
                int num=0;
                for(int j=i+1;j<=n;j++){
                    num++;
                    if(num<=res) printf("1 ");
                    else printf("-1 ");
                }
            }
        } else{
            int res=n>>1;
            for(int i=1;i<n;i++){
                int num=0;
                for(int j=i+1;j<=n;j++){
                    num++;
                    if(num<res) printf("1 ");
                    else if(num==res) printf("0 ");
                    else printf("-1 ");
                }
            }
        }
        puts("");
    }
    //PAUSE;
}

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页