首页 > TAG信息列表 > P2827

题解 P2827 【蚯蚓】

Solution 蚯蚓 题目大意:一开始有\(n\)只蚯蚓,你操作\(m\)次。每次抓最长的一只,记长度为\(x\),切成\(\lfloor px\rfloor\),\(x-\lfloor px\rfloor\)两只放回去,同时除这两只外的所有蚯蚓长度增加\(q\),问每次切断蚯蚓的长度,\(m\)次操作后所有蚯蚓的长度 队列 首先我们来解决除新增

P2827 蚯蚓

目录 题目链接 思路 代码 题目链接 咕咕咕 思路 如果是$q=0$的话,相当于维护一个集合,支持查询最大值,删除最大值,添加新值,用$set$即可实现 如果是$q>0$的话,我们可以把用刀切看成是,把最大值$x$,分成$\left\lfloor px\right\rfloor-q$和$x-\left\lfloor px\right\rfloor-q$,然后

P2827 蚯蚓

嘿嘿题目链接 首先我们给蚯蚓从大到小排序。然后可以发现,每次切出来的蚯蚓中,长的那写按切的顺序形成非上升序列,短的那些也如此。那么我们维护3个单调队列即可(原始蚯蚓也算一个单调队列),每次找三个队列队首元素最大的那个,把这个蚯蚓切掉,然后分别插入两个单调队列中。最后也按照这样