10 2020 档案
摘要:题目链接 #题目大意 三种操作,破坏一个点,修复最后被破坏的点,询问包含这个点的连续区间的最大长度。 #解题思路 用线段树维护父节点的前缀最长区间和后缀最长区间。 父节点的前缀最长区间最小等于左二子的最长前缀区间,如果左儿子的最长前缀区间是整个区间,那么父节点的最长前缀区间则还可以加上右二子的最长前
阅读全文
摘要:题目链接 #题目大意 给一个环,然后求每次修改后的最大子段和,最大子段和不能包含整个子段。 #解题思路 以往解决环形问题都是通过将两个相同的数组拼接起来实现的,但是这个题如果这么写的话要考虑区间长度问题,很麻烦。 有一个巧妙的方法,在维护区间最大子段和的同时,再维护一个区间最小子段和,那么考虑两个数
阅读全文
摘要:题目链接 #题目大意 有n个人,依次给出这n个人进入队列时前面有多少人p[i],和它的权值v[i],求最终队列的权值序列。 #解题思路 用线段树维护一个数组,最初全是1,代表每个位置有没有人。从后往前推,最后一个人的位置肯定是他最终的位置,然后把他删去,那么消去了最后一个人的影响,倒数第二个人的位置
阅读全文
摘要:题目链接 #题目大意 一个数字可以移动到i+arr[i]和i−arr[i](合法的话),问每个位置移动到与当前的值奇偶性不同的位置需要的次数。 #解题思路 一个数字可以移动到i+arr[i]和i-arr[i],设d[i]表示能到达奇偶性不同的点需要的最小次数,如果这个数一次就可以,那么d
阅读全文
摘要:题目链接 #题目大意 略 #解题思路 对于相等的关系很好维护,关键是对于不想等的关系。如果xi与xj不相等,那么xi所在集合中的所有点都是和xj所在集合中的所有点不相等的。 把不相等的xi与xj,所在集合的代表结点建一条边,如果xi所在集合要和其他集合合并,
阅读全文
摘要:题目链接 #题目大意 略 #解题思路 最大回文子串的变形。用dp[i][j][k][l]表示第一个字符串第ij这个子段和第二个字符串jk这个子段形成的回文串是否存在,因为两个字符串的组合一共有四种方式,所以转移方式有四种: 1.只有第一个字符串且$s1[i]==s1[j], dp[i][j][k
阅读全文
摘要:题目链接 #题目大意 略 #解题思路 使用两个优先队列,第一个优先队列以v为第一优先级,s为第二优先级从大到小排序,第二个优先队列以s为第一优先级,v为第二优先级从小到大排序。对于第一个优先队列堆顶的一对(v,s)来说,如果s我们选出的所有数的数量小,就不需要他了,因为我们以v的大小为第一优先级,加
阅读全文