http://codeforces.com/problemset/problem/730/A

题意:有n个人打天梯,想让这n个人的分数相同,每场比赛必须有2-5个人参赛,参赛的人会降低一分,问一个合理方案让所有人的分数相同。

思路:不限制比赛场数,那么只用考虑2-3个人参赛的情况(因为4和5可以由2和3组成)。但是这个时候就不知道什么时候用3什么时候用2了。。

看别人代码。只有最大的三个数是一样的时候才用3,其他时候都用2。

然后很暴力地用multiset来模拟比赛。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define N 105
 4 struct node {
 5     int r, id;
 6     friend bool operator < (const node &a, const node &b) { return a.r > b.r; }
 7 };
 8 multiset<node> s;
 9 vector<string> res;
10
11 int main() {
12     int n, r;
13     scanf("%d", &n);
14     for(int i = 1; i <= n; i++)
15         scanf("%d", &r), s.insert((node) {r, i});
16     while(s.begin()->r != s.rbegin()->r) {
17         vector<node> tmp; string ans;
18         for(int i = 0; i < n; i++) ans += '0';
19         int cnt = 2;
20         if(s.count(*s.begin()) == 3) cnt = 3;
21         for(int i = 0; i < cnt; i++) {
22             node now = *s.begin(); s.erase(s.begin());
23             ans[now.id-1] = '1';
24             if(now.r > 0) now.r--;
25             tmp.push_back(now);
26         }
27         for(int i = 0; i < cnt; i++) s.insert(tmp[i]);
28         res.push_back(ans);
29     }
30     printf("%d\n%d\n", s.begin()->r, res.size());
31     for(int i = 0; i < res.size(); i++) cout << res[i] << endl;
32     return 0;
33 }

转载于:https://www.cnblogs.com/fightfordream/p/6400568.html

Codeforces 730A:Toda 2(multiset模拟)相关推荐

  1. CodeForces 1463 C. Busy Robot 模拟

    CodeForces 1463 C. Busy Robot 模拟 题目大意: 有一个一维坐标轴,在最初时刻有个机器人位于坐标 0 0 0 位置,有 n n n 个命令,对于每一个命令在 t i t_i ...

  2. CodeForces - 1208E Let Them Slide(模拟+multiset)

    题目链接:点击查看 题目大意:给出n个数列,每行放一个,现在指定一个宽度w,满足w不小于n个数列中最长的那个数列的长度,现在可以将n个数列都放入到一个n*w的矩形之中,每个数列可以在各自的行内左右移动 ...

  3. BZOJ 3836 Codeforces 280D k-Maximum Subsequence Sum (模拟费用流、线段树)

    题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=3836 (Codeforces) http://codeforces.com ...

  4. 【CodeForces Round #550】A-F | 模拟 | 贪心 | 高精 | BFS | 二分图 | E

    今年怎么没有愚人节比赛了   CF你看看人家洛谷   唉鸭原来那边还没到愚人节呢- 愚人节比赛还是有的,在今晚 qwq [CodeForces 1144   A-F] Tags:模拟 贪心 BFS 高 ...

  5. Codeforces 706D Vasiliy's Multiset

    Vasiliy's Multiset 题意: 给你一个可以有重复元素的集合, '+'表示这个往这个集合里添加某个元素, '-' 表示删除某个集合中的元素(确保有了才会进行删除操作), '?' 表示询问 ...

  6. CodeForces - 1328F Make k Equal(模拟)

    题目链接:点击查看 题目大意:给出一个数列 a ,现在有两种操作: 找到一个最小值,使其值加一 找到一个最大值,使其值减一 注意这里找到一个最值进行的操作,是针对最值不唯一的情况,题目问至少需要进行多 ...

  7. CodeForces - 1321C Remove Adjacent(贪心+模拟)

    题目链接:点击查看 题目大意:给出一个长度不超过100且只包含小写字母的字符串,现在规定,如果某个位置 i 的相邻位置存在着当前位置所代表字母的前一个字母,即 i - 1 和 i + 1 中存在着 a ...

  8. CodeForces - 706D Vasiliy's Multiset(字典树删除操作)

    题目链接:点击查看 题目大意:给出一个正整数n,初始时有一个multiset,接下来有n次操作,实现所有操作,对于每个操作,会有三种形式: + x:向集合中添加一个 x - x:从集合中删掉一个 x ...

  9. CodeForces - 546C Soldier and Cards(模拟)

    题目链接:点击查看 题目大意:两个人在玩游戏,初始时两个人分别有一定数量的牌,牌面的大小一定是互不相同的,游戏规则如下: 每次两个人同时从自己牌堆的最顶端取出一张牌,我们可以记做a和b,比较一下其大小 ...

  10. CodeForces - 224C. Bracket Sequence (栈模拟)简单做法

    A bracket sequence is a string, containing only characters "(", ")", "[&quo ...

最新文章

  1. Excel百万数据导入oracle,excel表数据导入oracle的方法!(超级有用)
  2. QT:KeepAliveOption的应用
  3. 浅谈ADO.NET中的五个主要对象
  4. 【zabbix】安装、配置agent,配置被监控端
  5. UBoot讲解和实践-----------讲解(一)
  6. 计算机辅助翻译的启示,翻译单位研究对计算机辅助翻译启示.PDF
  7. 汇编语言(十一)之统计非数字字符个数
  8. 每日一题:leetcode1128.等价多米诺骨牌对数
  9. 【Todo】Java8新特性学习
  10. CentOS 下重装 jdk
  11. 多线程-线程间通信-多生产者多消费者示例
  12. 认知盈余时代-知乎如何运营
  13. 69、【backtrader期货策略】十大经典策略之Dual Thrust策略(2021-10-28更新)
  14. 44个“区块链+AI”应用场景分析, 你觉得还能更全吗?
  15. “壮士断腕”无人驾驶能够拯救苹果的内忧外困吗?
  16. ERA5气象数据下载经验分享
  17. 2022年全球与中国游泳池救生椅市场现状
  18. iOS开发之在地图上绘制出你运动的轨迹
  19. Nginx多策略流量分发
  20. XML 和 JSON 相互转换

热门文章

  1. [Nowcoder] [牛客网NOIP赛前集训TG4A] 动态点分治 [模拟]
  2. rtspplayer播放器实现
  3. 《高效能人士的七个习惯》阅读笔记
  4. python 控制鼠标滚轮_python-pyautogui控制鼠标键盘自动操作
  5. matlab 判断鼠标按下_如何让MATLAB控制你的鼠标和键盘
  6. echarts 生成中国陕西省份(或其他省份)的地图,大屏使用
  7. Dinky 0.6.2 已发布,优化 Flink 应用体验
  8. 计算机芯片级维修包括哪些,计算机芯片级维修1
  9. jupyter notebook 拒绝连接 以及 查 IP
  10. 自下而上与自上而下的归并排序