摘要: 难度在省选左右. 主要思路是dp,在看了题解后才明白,主要谈谈理解. 看上去与dp毫无关系,但这个题不是利用dp求最优值,而是利用dp的子结构的递推关系. 对于长为len的字符串,可以分成很多个1个单独字符与两个字符的组合(这两个字符可变成 一字符),大串能否转换,看其构成的小串能转换.所以以长度为 阅读全文
posted @ 2019-07-16 14:54 xqyxqy 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 大概说一下思路**1.贪心**两个图都为1时这一点按兵不动,这里蒟蒻开始认为这个贪心有问题,例如这个数据.初: 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 末: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 这样看初状态(3,2)的1按照上面的贪心似乎走不了,只 阅读全文
posted @ 2019-07-16 14:53 xqyxqy 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 这里介绍LCA的三种方法(倍增,RMQ,tarjan) ps:以lg3379为例. 1.倍增 可以理解为暴力的优化.先让两个点跳在同一高度,再一起跳2^k次倍祖先. 难点:倍增数组转移方程:bz[i][j]=bz[bz[i][j-1]][j-1] 2.RMQ 提前说明这种算法比较慢,且很容易错.写在 阅读全文
posted @ 2019-07-16 14:51 xqyxqy 阅读(697) 评论(0) 推荐(0) 编辑
摘要: 在发表文章之前,蒟蒻只会用归并排序求逆序对.在考试中遇到了求数列中逆序对与本质不同的逆序对,立刻露出爆零本质,于是学习了一下树状数组求这两个子问题. 1.逆序对 定义:在数列中ai>aj&&i<j,将这两个数称作逆序对. 暴力思想:直接找这个数前面比它大的数,复杂度O(n^2)???; 树状数组:其 阅读全文
posted @ 2019-07-16 14:49 xqyxqy 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 1.tarjan缩点 思路:找到图中的强联通分量,染成同色,形成DAG(有向无环图). vis:记录点是否在栈中. dfn:点在dfs中顺序,即时间戳. col:同一强连通分量的染色颜色. low:点与点的子辈能回到的最小时间戳. 其实也可以有其他辅助数组,但核心的数组就这四个. 难点:1.low[ 阅读全文
posted @ 2019-07-16 14:47 xqyxqy 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 线段树是一个很重要的维护多重信息的树型结构. 1.维护区间和,加减乘除的修改 对有两个经典板子题lg3372 lg3373 总结一下lg3373的乘法tag,加法tag,区间v的变化值问题. 1. 在做乘法操作时,加法tag要乘上对应值 tree[k].tag1*=w; 关于这点意思乘法优先级高于加 阅读全文
posted @ 2019-07-16 14:41 xqyxqy 阅读(102) 评论(0) 推荐(0) 编辑