info: { blogIcon: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogUser: 'OIerBoy', blogAvatar: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogStartDate: '2023-04-22', webpageTitleOnblur: '(o?v?)ノ Hi', webpageTitleOnblurTimeOut: 1000, webpageTitleFocus: '(*′?`*) 欢迎回来!', webpageTitleFocusTimeOut: 1000, webpageIcon: "https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/blog_logo.webp", { enable: true, // 是否开启日/夜间模式切换按钮 auto: { // 自动切换相关配置 enable: false, // 开启自动切换 dayHour: 5, // 日间模式开始时间,整数型,24小时制 nightHour: 19 // 夜间模式开始时间,整数型,24小时制 } } },

[ABC140F] Many Slimes

2023-02-13

题目

题目传送门

翻译

翻译

难度&重要性(1~10):6

题目来源

AtCoder

题目算法

贪心

解题思路

用了两个 multiset a 和一个 set s,一个 multiset 用来记录用来存还剩哪些数没生成,另一个用来存已经生成了哪些数,然后后面放数的时候就枚举第二个 multiset 来生成新的数。

然后 \(s\) 就是用来存还有哪几种数没放,因为根据贪心,我们需要找到第一个刚好小于它的数来生成,就可以在 \(s\) 上面二分一下即可。然后如果这个数在第一个 \(a\) 已经没了,那么我们就在这个 \(s\) 中把这个数删掉即可。

完成状态

已完成

posted @ 2023-04-28 19:35  OIerBoy  阅读(52)  评论(0)    收藏  举报