Educational Codeforces Round 104-C Minimum Ties

题目

思路

首先我们要确定在不重复比赛的情况下一共会有n∗(n−1)/2n*(n-1)/2n∗(n−1)/2场比赛。这样的话每场比赛可以贡献一胜一负或者两平。
所以我们遍历最多有多少胜场这样可以保证平局最少
同时很重要的一点总分一定要可以平均分配给每个队伍。
在满足以上条件下你可以找到总的胜利场数将它合理的分配给每个球队即可,而对于平局则当知道每个队胜场之后也可知道。

代码

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
typedef long long ll;
int a[105];//存储每个球队胜场
int b[105];//储存平局数
int main() {int t;scanf("%d", &t);while (t--) {int n;scanf("%d", &n);int sum = n * (n - 1);int temp = n * (n - 1) / 2;int l1;for (; temp >= 0; temp--) {int loop = temp * 3 + (sum - temp * 2) * 1;//总分if (loop % n == 0) {l1 = loop / n;//l1是每个球队最后的分数break;}}for (int i = 1; i <= n; i++) {if (temp == 0) {break;}for (int j = 1; i <= n; j++) {if ((l1 - 3 * j) >= 0) {a[i] = j;//将胜场分配} else {break;}}}for (int i = 1; i <= n; i++) {b[i] = l1 - a[i] * 3;//平局}for (int i = 1; i <= n; i++) {for (int j = i + 1; j <= n; j++) {if (a[i] != 0) {a[i]--;//现将胜利的输出之后是平局最后是负场printf("1 ");continue;} else if (b[i] != 0) {b[i]--;//一个平局两个队都要更新b[j]--;printf("0 ");continue;} else {printf("-1 ");a[j]--;//这个队负势必另一个队胜}}}printf("\n");}
}

C Minimum Ties相关推荐

  1. Educational Codeforces Round 104 (Rated for Div. 2)A~E解题报告

    Educational Codeforces Round 104 (Rated for Div. 2) A. Arena \quad原题链接 http://codeforces.com/contest ...

  2. Educational Codeforces Round 104 (Rated for Div. 2) A,B,C,D,E

    Educational Codeforces Round 104 (Rated for Div. 2) A,B,C,D,E A - Arena 题意 nnn 个英雄,他们的等级分别是 a1,a2,-, ...

  3. Educational Codeforces Round 104 (Rated for Div. 2)

    A. Arena 题目传送门: A. Arena 题目大意: 有n个人,每个人都有战斗力,当两个人打起来时,战斗力高的人赢并且战斗力加1,当战斗力达到100500时,则成为英雄.问能有多少人能成为英雄 ...

  4. Error:This Gradle plugin requires Studio 3.0 minimum

    导入一个demo提示Error:This Gradle plugin requires Studio 3.0 minimum 在gradle.properties中导入 android.injecte ...

  5. Error:The SDK Build Tools revision (23.0.3) is too low for project ':app'. Minimum required is 25.0.

    导入github上项目的时候出现 Error:The SDK Build Tools revision (23.0.3) is too low for project ':app'. Minimum ...

  6. [leetcode] Minimum Path Sum

    Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...

  7. 【C++】C++11 STL算法(六):最小/最大操作(Minimum/maximum operations)、比较运算(Comparison operations)

    目录 最小/最大操作(Minimum/maximum operations) 一.max 1.原型: 2.说明: 3.官方demo 二.max_element 1.原型: 2.说明: 3.官方demo ...

  8. LeetCode 76. Minimum Window Substring / 567. Permutation in String

    76. Minimum Window Substring 典型Sliding Window的问题,维护一个区间,当区间满足要求则进行比较选择较小的字串,重新修改start位置. 思路虽然不难,但是如何 ...

  9. pandas使用max函数和min函数计算dataframe日期(时间)数据列中最大日期和最小日期对应的数据行(maximum and minimum date or time row)

    pandas使用max函数和min函数计算dataframe日期(时间)数据列中最大日期和最小日期对应的数据行(maximum and minimum date or time row in data ...

  10. pandas计算滑动窗口中的最小值实战(Rolling Minimum in a Pandas Column):计算单数据列滑动窗口中的最小值、计算多数据列滑动窗口中的最小值

    pandas计算滑动窗口中的最小值实战(Rolling Minimum in a Pandas Column):计算单数据列滑动窗口中的最小值.计算多数据列滑动窗口中的最小值 目录

最新文章

  1. LeetCode-106-Construct Binary Tree from Inorder and Postorder Traversal
  2. 微生态、生信和植物领域最新资讯合集,不看你就亏大啦!!!
  3. Java基础学习(1)
  4. VS C#窗体程序未能找到Form1.resx文件解决方法
  5. CMS sell in customizing
  6. java基础之匿名内部类
  7. 天池 在线编程 安排面试城市(贪心)
  8. 税收和成本计算器php,企业税收计算器
  9. jeecg字典表-系统字典
  10. Mysql—— order 和 limit 的用法
  11. 上位机软件定制开发,如何选择服务商
  12. topcoder客户端
  13. 查看电脑是否开启虚拟化
  14. 《途客圈创业记:不疯魔,不成活》一一1.3 iWeekend创业周末
  15. 提取视频关键帧和关键帧的时间点信息
  16. 佳能Canon PIXMA MG4250 打印机驱动
  17. vue中使用Antv g6构建简单流程图
  18. 一些用于聚类和分类问题的数据集
  19. 微信小程序消息推送服务器接入
  20. PHP接口定义和使用

热门文章

  1. 历年软件设计师下午考试试题汇总统计
  2. 在Google上做搜索引擎优化 (SEO),最重要的是哪几点?
  3. winRAR 密码暴力破解/清除压缩文件密码工具
  4. 时钟芯片AD9520
  5. 社区新闻舆情报道收集工作怎么做好的方法
  6. C++ 查看本机WiFi密码
  7. matlab线性规划的最优化,【OR】Matlab求解最优化问题(1) 线性规划
  8. (补)蒟蒻信安笔记1.5:(Nmap的使用部分)原来是这么个神奇的原因导致无法进行
  9. 牛顿柯特斯公式及复合形式、龙贝格求积公式,高斯勒让德求积公式
  10. java 8 stream入门_跟上 Java 8 : Stream API 快速入门