zoukankan      html  css  js  c++  java
  • [CF1487C] Minimum Ties

    [CF1487C] Minimum Ties - 构造

    Description

    这场比赛会有 (n) 个球队参与,每个球队都会与其他的所有球队对决正好一场。对于每局比赛,如果分出胜负则胜者得 (3) 分,负者得 (0) 分,如果没有分出胜负就双方各得 (1) 分。构造一种局面,使得所有球队的积分完全相同,同时平局数最小。

    Solution

    如果 n 是奇数,那么每个人恰好赢等于输次数即可

    如果 n 是偶数,我们可以让 2i-1 和 2i 平一场,这样剩下的部分每个人恰好赢等于输次数即可

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    signed main()
    {
        ios::sync_with_stdio(false);
    
        int t;
        cin >> t;
    
        while (t--)
        {
            int n;
            cin >> n;
    
            if (n & 1)
            {
                for (int i = 0; i < n * (n - 1) / 2; i++)
                {
                    if (i & 1)
                        cout << 1 << " ";
                    else
                        cout << -1 << " ";
                }
            }
            else
            {
                for (int i = 0; i < n; i++)
                {
                    for (int j = i + 1; j < n; j++)
                    {
                        if (i % 2 == 0 && j == i + 1)
                            cout << 0 << " ";
                        else if ((i + j) & 1)
                            cout << 1 << " ";
                        else
                            cout << -1 << " ";
                    }
                }
            }
            cout << endl;
        }
    }
    
  • 相关阅读:
    第03组 Beta冲刺(4/5)
    第03组 Beta冲刺(3/5)
    第03组 Beta冲刺(2/5)
    第03组 Beta冲刺(1/5)
    第03组 Alpha冲刺(6/6)
    第03组 Alpha冲刺(5/6)
    软工实践个人总结
    最终作业
    Beta答辩总结
    Beta 冲刺(7/7)
  • 原文地址:https://www.cnblogs.com/mollnn/p/14436767.html
Copyright © 2011-2022 走看看