题解 3155: 蓝桥杯2023年第十四届省赛真题-整数删除

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

整数删除-能看懂系列

解题思路:第一份代码为通过的代码,借鉴于其处的方法,这边有些大佬的代码可能不太好理解,所以写了这个比较详细的,希望对各位有用;另外这个题我自己也有方法,容易理解但较为繁琐也可惜有4个输出超限,有兴趣的可以试试优化第二份注意事项:参考代码:#include#include

优先队列 + map

摘要:解题思路:数据为10e5  暴力n^2 肯定会超时可以利用小根堆来做注意事项:由于value不断的加可能超过INT_MAX,所以value类型为long long参考代码:#include<iostr……

3155: 蓝桥杯2023年第十四届省赛真题-整数删除

解题思路:暴力能过5个点,25分。(vector数组实现删数,for循环寻找最小数,每删除一次循环一次)最小堆,有stl库优先队列priority_queue,堆排序啥的不用咱写了,直接push往里放数就行,存的时存两个值,这个数和这个数的下标,

并查集与路径压缩

利用并查集的路径压缩,快速找到最左和最右的可用节点```cpp#includeusingnamespacestd;#defineprpair#definelllonglongconstintN=5e5+5;llL[N],R[N],V[N],n,

使用stl的双向链表+数组

```cpp#includeusingnamespacestd;#defineprpair#definelllonglongconstintN=5e5+5;lln,k;//双向链表listls;//保存双向链表的迭代器,使其支持随机访问vectorvec(N);priority_queueque;in

前驱 后驱数组 + 优先队列

#思路##如何动态维护这个序列对于这题我们需要维护一个前驱数组和后驱数组,当选中下标i作为被删除点时候进行如下操作![](/image_editor_upload/20230410/20230410030355_21600.png)```cpp//找到index的前驱sucs,
优质题解

堆 + 双向链表

##试题H:整数删除###题意描述给定一个长度为N的整数数列:$A_1,A_2...A_N$。你要重复以下操作K次:每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除。并把与它相邻的整数加上被删除的数值。输出K次操作后的序列。