先来说网上流行最多的实现,用两个指针,一个从前往后,一个从后往前。直接上代码,如下。 再来说说我最喜欢的风格,也是算法导论上的快排实现方法,两个指针从同一边开始,算法导论的思路很清晰,还给出了完整的理论推导,不变性的证明,有兴趣的可以去看看算法道路的快排章节。 下面是算法导论关于快排的实现思路,如下 ...
分类:
编程语言 时间:
2019-10-21 11:22:53
阅读次数:
81
目录 1. 合并两个有序链表 2. 删除排序链表中的重复元素 3. 环形链表 4. 5. 6. 7. 8. 9. 1. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 方法一、利用递归思想 方法二、迭代 2. 删除排序链表中的重复元素 ...
分类:
其他好文 时间:
2019-10-20 01:17:30
阅读次数:
128
代码的关键部分 关于这个方程解释一下 我们不断搜索去边,然后回溯更新每一个阶段需要被染色的数量; 假设需要被染色的节点数量不足k,即sum-mid<0,那我们取0,原因是每次染色的机会是从后往前推的,即使仍然有染色的机会也不能更新前面的状态; 而如果需要染色的节点数量大于k,即sum-mid>0,那 ...
分类:
其他好文 时间:
2019-10-16 13:46:06
阅读次数:
74
"传送门" 怎么又是$tourist$神仙的题…… $A$ 咕咕 $B$ 考虑从后往前做,假设考虑到$a_i$,且只考虑第$a_{i+1}$到$a_n$的答案为$s$,那么考虑了$a_i$的答案$p$要满足$p/a_i\times a_i=s$(这里是下取整),因为这里必有$a_i|s$,所以$p$ ...
分类:
其他好文 时间:
2019-10-15 21:10:26
阅读次数:
106
Do Not Try This Problem Gym - 102307D 题意:给个长度为len的字符串(len<=1e5),然后q次操作(q<=1e5),每次给出i,a,k,c,(i+k*a<=len)也就是把字符串位置为i,i+a,i+2*a...,i+k*a的改成c字符,输出q次操作后的字符 ...
分类:
其他好文 时间:
2019-10-14 23:37:07
阅读次数:
109
P1026 统计单词个数 string 基本操作: substr(x,y) x是起始位置,y是长度; 返回的是这一段字符串; 先预处理sum[i][j],表示以i开头,最多的单词数; 从后往前寻找,保证开头没有被用过; sum[i][j]=sum[i+1][j]; 再找是否有新单词出现; s.fin ...
分类:
其他好文 时间:
2019-10-14 21:03:29
阅读次数:
85
差分数组维护前缀和,之后从后往前判断是否合法,找到尽量位置在后的合法位置,判断输出就好了 ...
分类:
其他好文 时间:
2019-10-10 22:48:46
阅读次数:
156
"A." 解 1 我们发现只需要关心处于结果字符串前 $k$ 位的字符。 因此考虑从后往前处理。 对于一个询问区间,我们暴力连边,用并查集维护, $x$ 的父亲等于 $y$ 相当于位于 $x$ 的字符是从位于 $y$ 的字符处复制过来的,然后删掉这个区间,更新其他元素的排名,用线段树维护。复杂度 $ ...
分类:
其他好文 时间:
2019-10-04 21:16:55
阅读次数:
82
传送门 分析得知: 每个开关最多按一次,且最优一定是从后往前按(因为对约数有影响,前面的无法再影响到后面大的) 那么可以先处理出至少需要按几次“正确”的开关(从后往前保证都是按的正确的) 有一半的数据满足 k=n,或者k大于正确按的次数,这个时候与期望无关,直接从后往前按就行。 然后考虑到与期望有关 ...
分类:
其他好文 时间:
2019-09-23 19:46:23
阅读次数:
114
拓扑排序学习前提须知 拓扑排序是对于一个图的所有节点进行排序,要求排序完后没有一个节点指向它前面的节点,那么这样我们就会得到一个拓扑排序后的数组,我们从后往前扫通过某种计算就能够得到从某一个点开始最多能到多少个点。 算法内容 竞赛需要用到的点 1、拓扑排序仅适用于有向无环图,当然也可以判定是否图为无 ...
分类:
编程语言 时间:
2019-09-19 16:06:20
阅读次数:
84