摘要:
题目: = "CodeForces727E" 分析: = 看到字符串比较,肯定想到哈希啊……现学的哈希,先丢两个重要的公式 ($seed$是大于字符集大小的质数,$p$是大质数) $$hash[i]=(hash[i 1] seed+s[i])mod \ p$$ $$hash[l,r]=(hash[r 阅读全文
摘要:
题目: = "洛谷3224" 分析: = 这题一看$n\leq100000$的范围就知道可以暴力地用$O(nlogn)$数据结构乱搞啊…… 每个联通块建一棵Splay树,查询就是Splay查询第k大的模板,建桥的时候就把两个联通块的Splay进行“启发式合并” 本来以为启发式合并是什么高端的东西,t 阅读全文
摘要:
题目: = "BZOJ2565" 分析: = 首先看到回文串,肯定能想到Manacher算法。下文中字符串$s$是输入的字符串$str$在Manacher算法中添加了字符‘ ’后的字符串 (构造方式如下) string s = " "; for (int i = 0; i include using 阅读全文
摘要:
题目: = "洛谷2926" (截止至本博客发表时,BZOJ1607题面有误,正确题面请到洛谷2926查看) 分析: = 一句话题意:给定$n$个数$\{a_i\}$,求对于每个$a_i$有多少个数$a_j$满足$a_i|a_j$ $(1\leq i,j\leq n$且$i \neq j)$ 按题意 阅读全文
摘要:
卡特兰数的英文维基讲得非常全面,强烈建议阅读! "Catalan number Wikipedia" (本文中图片也来源于这个页面) 由于本人太菜,这里只选取其中两个公式进行总结。 (似乎就是这两个比较常用?) 首先先扔卡特兰数的定义式 $$Catalan_n=\sum_{i=1}^{n 1}Cat 阅读全文
摘要:
题目: = "POJ3280" "洛谷2980" 分析: = 首先,考虑只可以加字的情况 设$s[i]$表示第$i$个字符,$add[i]$表示加上一个字母$i$的花费,$dp[i][j]$表示把区间$i$~$j$变成回文串的花费,那么 1.如果$s[i]=s[j]$,那么只需要把$(i+1)$~$ 阅读全文
摘要:
【写在前面】TYC (Little White) 真是太巨啦! 题目: = "Vijos1083" 分析: = 一眼看上去就是线段树啊…… 然而当我这种蒟蒻兴高采烈地把线段树模板敲了一半,却发现一个问题: 这子区间最大值的查询咋整啊…… 于是经过仔cha细zhao思ti考jie,设计了这样一个线段树 阅读全文
摘要:
题目: = "洛谷3467" 分析: = (ti jie shuo)这题是个单调栈经典题。 单调栈就是栈元素递增或递减的栈,这里只考虑递增。新元素入递增栈时,先将所有比它大的元素弹出,然后让新元素入栈,这样保证栈顶永远是最大的元素,代码如下:($a$是新元素) 然后来分析这道题。我这种蒟蒻乍一看一脸 阅读全文
摘要:
题目: = "POJ3255" "洛谷2865" 分析: = 这道题第一眼看上去有点懵…… 不过既然要求次短路,那估计跟最短路有点关系,所以就拿着优先队列优化的Dijkstra乱搞,搞着搞着就通了。 开两个数组:$dis$存最短路,$dis2$存次短路 在松弛的时候同时更新两个数组,要判断三个条件 阅读全文
摘要:
题目: = "洛谷2982" = 分析: = 这道题最重要的是想明白一点:牛$i$走到以后只对$P_i$的子树产生影响 知道这个以后,就可以想到在线维护每个牧场已经被“影响”了多少次(也就是在此之前有多少个牛是到达自己的祖先结点的),这就是从谷仓到这个牧场需要减速多少次。 怎么维护子树信息呢?dfs 阅读全文