Codeforces 730A:Toda 2(multiset模拟)
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模拟)相关推荐
- CodeForces 1463 C. Busy Robot 模拟
CodeForces 1463 C. Busy Robot 模拟 题目大意: 有一个一维坐标轴,在最初时刻有个机器人位于坐标 0 0 0 位置,有 n n n 个命令,对于每一个命令在 t i t_i ...
- CodeForces - 1208E Let Them Slide(模拟+multiset)
题目链接:点击查看 题目大意:给出n个数列,每行放一个,现在指定一个宽度w,满足w不小于n个数列中最长的那个数列的长度,现在可以将n个数列都放入到一个n*w的矩形之中,每个数列可以在各自的行内左右移动 ...
- BZOJ 3836 Codeforces 280D k-Maximum Subsequence Sum (模拟费用流、线段树)
题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=3836 (Codeforces) http://codeforces.com ...
- 【CodeForces Round #550】A-F | 模拟 | 贪心 | 高精 | BFS | 二分图 | E
今年怎么没有愚人节比赛了 CF你看看人家洛谷 唉鸭原来那边还没到愚人节呢- 愚人节比赛还是有的,在今晚 qwq [CodeForces 1144 A-F] Tags:模拟 贪心 BFS 高 ...
- Codeforces 706D Vasiliy's Multiset
Vasiliy's Multiset 题意: 给你一个可以有重复元素的集合, '+'表示这个往这个集合里添加某个元素, '-' 表示删除某个集合中的元素(确保有了才会进行删除操作), '?' 表示询问 ...
- CodeForces - 1328F Make k Equal(模拟)
题目链接:点击查看 题目大意:给出一个数列 a ,现在有两种操作: 找到一个最小值,使其值加一 找到一个最大值,使其值减一 注意这里找到一个最值进行的操作,是针对最值不唯一的情况,题目问至少需要进行多 ...
- CodeForces - 1321C Remove Adjacent(贪心+模拟)
题目链接:点击查看 题目大意:给出一个长度不超过100且只包含小写字母的字符串,现在规定,如果某个位置 i 的相邻位置存在着当前位置所代表字母的前一个字母,即 i - 1 和 i + 1 中存在着 a ...
- CodeForces - 706D Vasiliy's Multiset(字典树删除操作)
题目链接:点击查看 题目大意:给出一个正整数n,初始时有一个multiset,接下来有n次操作,实现所有操作,对于每个操作,会有三种形式: + x:向集合中添加一个 x - x:从集合中删掉一个 x ...
- CodeForces - 546C Soldier and Cards(模拟)
题目链接:点击查看 题目大意:两个人在玩游戏,初始时两个人分别有一定数量的牌,牌面的大小一定是互不相同的,游戏规则如下: 每次两个人同时从自己牌堆的最顶端取出一张牌,我们可以记做a和b,比较一下其大小 ...
- CodeForces - 224C. Bracket Sequence (栈模拟)简单做法
A bracket sequence is a string, containing only characters "(", ")", "[&quo ...
最新文章
- Excel百万数据导入oracle,excel表数据导入oracle的方法!(超级有用)
- QT:KeepAliveOption的应用
- 浅谈ADO.NET中的五个主要对象
- 【zabbix】安装、配置agent,配置被监控端
- UBoot讲解和实践-----------讲解(一)
- 计算机辅助翻译的启示,翻译单位研究对计算机辅助翻译启示.PDF
- 汇编语言(十一)之统计非数字字符个数
- 每日一题:leetcode1128.等价多米诺骨牌对数
- 【Todo】Java8新特性学习
- CentOS 下重装 jdk
- 多线程-线程间通信-多生产者多消费者示例
- 认知盈余时代-知乎如何运营
- 69、【backtrader期货策略】十大经典策略之Dual Thrust策略(2021-10-28更新)
- 44个“区块链+AI”应用场景分析, 你觉得还能更全吗?
- “壮士断腕”无人驾驶能够拯救苹果的内忧外困吗?
- ERA5气象数据下载经验分享
- 2022年全球与中国游泳池救生椅市场现状
- iOS开发之在地图上绘制出你运动的轨迹
- Nginx多策略流量分发
- XML 和 JSON 相互转换
热门文章
- [Nowcoder] [牛客网NOIP赛前集训TG4A] 动态点分治 [模拟]
- rtspplayer播放器实现
- 《高效能人士的七个习惯》阅读笔记
- python 控制鼠标滚轮_python-pyautogui控制鼠标键盘自动操作
- matlab 判断鼠标按下_如何让MATLAB控制你的鼠标和键盘
- echarts 生成中国陕西省份(或其他省份)的地图,大屏使用
- Dinky 0.6.2 已发布,优化 Flink 应用体验
- 计算机芯片级维修包括哪些,计算机芯片级维修1
- jupyter notebook 拒绝连接 以及 查 IP
- 自下而上与自上而下的归并排序