Problem

codeforces.com/problemset/problem/730/A

Reference

blog.csdn.net/ACMore_Xiong/article/details/52907334

题意

有 n 个正整数,每次可以选其中的 2 ~ 5 个数来同时减掉 1,减到 0 之后可以继续减但值还是 0。

要使得它们最终全部相等,并且让这个数尽量大。

Analysis

只考虑同时减2个或3个的情况(如果有多个相等的最大值,可以把它们分成两个一组或三个一组,多减几次)。

如果刚好有3个相等的最大值,就选中那3个一起减;否则,选最大的两个一起减。直到最大值和最小值相等。

之前以为 multiset 的 rbegin() 和 end() 返回值是一样的,一直 RE。

但其实 end() 返回的是最后一个元素的后一个位置,而 rbegin() 是最后一个元素的位置。

multiset 的 erase() 不能接受 rbegin() 的返回值(类型是 reverse_iterator),但能接受 begin() 的返回值,所以我是按降序排。

听说 multiset 比较相等的时候不是用“==”,而是用“ ! (a < b) && ! (b < a) ”,所以不需要重载“==”,只要重载“<”。(用 count() 的时候)

(p.s.:原来“ ios::sync_with_stdio(false) ”这句是要写在函数里面的…)

Source code

#include <iostream>
#include <string>
#include <vector>
#include <set>
using namespace std;
const int N = 100;struct node
{int id, r;node() {}node(int _i, int _r): id(_i), r(_r) {}bool operator < (const node &nd) const{return r > nd.r;}
};multiset<node> ms;
vector<string> ans;int main()
{ios::sync_with_stdio(false);int n;cin >> n;for(int i=0, r; i<n; ++i){cin >> r;ms.insert(node(i, r));}for(int num=2; ms.begin()->r != ms.rbegin()->r; num=2){if(ms.count(*ms.begin()) == 3)++num;vector<node> v(num);string s(n, '0');for(int i=0; i<num; ++i){v[i] = *ms.begin();ms.erase(ms.begin());if(--v[i].r < 0)v[i].r = 0;s[v[i].id] = '1';}ans.push_back(s);ms.insert(v.begin(), v.end());}cout << ms.begin()->r << '\n' << ans.size() << '\n';for(int i=0, e=ans.size(); i<e; ++i)cout << ans[i] << '\n';ms.clear();ans.clear();return 0;
}

codeforces 730 A Toda 2相关推荐

  1. Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换

    传送门 文章目录 题意: 思路: 题意: 定义a⊕kba\oplus_k ba⊕k​b为a,ba,ba,b在kkk进制下的不进位加法.系统会随机生成一个数xxx,你猜这个数,假设当前猜的数为yyy,如 ...

  2. CodeForces Round #730 D1. RPD and Rap Sheet (Easy Version)题解

    Codeforces Round #730 (Div. 2) 题意: t组数据,每组给一个n和k,(easy version里面k=2) 每一次系统会输入一个初始的密码(初始密码是一个在[0,n−1] ...

  3. Codeforces Round #730 (Div. 2) D. RPD and Rap Sheet (交互,从easy到hard)

    easy hard 题意 已知密码是kkk进制数,在十进制下是[0,n−1][0,n-1][0,n−1]之间,你有至多nnn次机会猜测这个数 设你猜的数字是yyy,如果答案正确,系统会返回111 如果 ...

  4. Codeforces Round #730 (Div. 2) D1. RPD and Rap Sheet (Easy Version)

    传送门 思路: 假设0到n-1之间的数为密码,则可以想到一个可行的解法: 第一次输出0,之后的每一次都输出(i−1)⊕(i−2)(i-1)⊕(i-2)(i−1)⊕(i−2). 假设答案为x,那么第一次 ...

  5. CodeForces - 1543D2 RPD and Rap Sheet (Hard Version)(交互+模拟)

    题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次,对于 ...

  6. CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)

    题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次 题目 ...

  7. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  8. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  9. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  10. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

最新文章

  1. Linux查看目录挂载点
  2. php主要算法设计,四种排序算法设计(PHP)
  3. Fragment使用小技巧
  4. HttpServletRequest对象方法的用法(转)
  5. ue4集合类型_3D游戏开发之UE4中的集合:TSet容器
  6. SqlServer2008 安装经验日志总结
  7. 内核中 subsys_initcall 以及初始化标号
  8. c++局部对象是什么_什么是Java内部类?
  9. 剑指offer面试题09. 用两个栈实现队列(队列、栈)
  10. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_04.mybatis概述
  11. 【frida实战】“一行”代码教你获取WeGame平台中所有的lua脚本
  12. Google浏览器升级为最新打开网页时缓慢 “正在建立安全连接..........”解决方法
  13. 计算机远程桌面连接有几种方式,远程桌面连接的2种方法
  14. vb冒泡排序法流程图_vb数组排序-冒泡排序法
  15. python连接wss走自己的代理
  16. 西门子300 PLC 功能块及背景数据块的说明
  17. iOS底层系统:虚拟内存
  18. Access的密码以及如何连接有数据库密码的 Access
  19. 梳理学习技术的脉络,助你一臂之力
  20. C#,数值计算,解微分方程的龙格-库塔二阶方法与源代码

热门文章

  1. 基于Vue的标尺插件(刻度尺)
  2. B. Diverse Garland
  3. open-falcon短信报警
  4. Cocos2dx - 缓动Action
  5. 阿里巴巴首次揭秘电商知识图谱AliCoCo!淘宝搜索原来这样玩!
  6. python f检验 模型拟合度_Python 爬取北京二手房数据,分析北漂族买得起房吗? | 附完整源码...
  7. RPL协议的原理与安全机制
  8. 年薪35万女网管的故事
  9. 小飞鱼通达二开 致远OA配置(写数据到通达OA第三方系统)接口(图文)
  10. wamp php打不开,wamp无法打开phpmyadmin