上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要: 寻找三元组(i,j,k),使得(i,j)(j,k)都是回文字串,其中i<=j<k. 可以发现,对于每一位i,只要预处理出来有多少个以i为右端的回文串和以i为左端的回文串。把那些串的另一端的坐标和计算出来就可以了。 然后ans = ∑cntR[i]*cntL[i+1] 这里cntR[i]记录以i为右端 阅读全文
posted @ 2016-08-05 19:17 Helica 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1.manacher HDU5785 Interesting 2.kmp HDU5763-Another Meaning kmp记录子串数,dp转移意思数 3.后缀数组 HDU5769 Substring 4.hash (Rabin karp) 阅读全文
posted @ 2016-08-02 21:54 Helica 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 数据结构 STL 栈 队列 堆 树(数据结构) | | | | 线段树 平衡树 生成树 | | | 各种应用 | | | | | | Splay 红黑树(map) Treap SBT prim kruskual 并查集 | | | | | 路径压缩 按秩合并 种族并查集 可撤销并查集 高级数据结构 阅读全文
posted @ 2016-07-30 22:09 Helica 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 首先想到的就是sort一下,然后每个集合都在排过序的数组里面取,不重复。 这样就推出公式dp[i][j] = min(dp[k][j-1] + (s[i]-s[k+1])^2) 其中dp[i][j]为在第i位完成j个分组的。 不考虑分组的情况下跟打印文章那题一样。考虑上需要有M个分组,就是两层for 阅读全文
posted @ 2016-07-30 22:03 Helica 阅读(482) 评论(0) 推荐(0) 编辑
摘要: CDQ学习资料 day1cdq分治相关 CDQ的IOI论文 1.优化斜率dp 左边对右边影响维护一个凸包解决 需要知识:①凸包②斜率dp 题目:√ HDU3842 Machine Works HYSBZ 1492 货币兑换Cash 2.三维/多维偏序 cdq降维,剩下用数据结构维护。 需要知识:①L 阅读全文
posted @ 2016-07-30 17:43 Helica 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 只想到了朴素的n^2做法,然后发现可以用splay维护。于是调了几个小时的splay。。。 splay的元素是从第二个开始的!第一个是之前插入的头节点! 阅读全文
posted @ 2016-07-30 13:35 Helica 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 这道题可以树链剖分做。但是最近在给学弟搞数据结构复习了LCA树状数组RMQ 然后就搞了一发LCA+树状数组维护。 dis数组维护当前点到根节点的权值和。则dis(u,v) = dis[u]+dis[v]-2*dis[lca(u,v)] 修改的时候,单点修改影响了该点所有儿子的dis,刚好可以用dfs 阅读全文
posted @ 2016-07-28 00:18 Helica 阅读(868) 评论(0) 推荐(0) 编辑
摘要: 为了学CDQ分治,从斜率dp和凸包开始做吧。。 代码就是维护一个凸包。利用递增的性质丢掉不合适的点。 http://www.cnblogs.com/Rlemon/p/3184899.html 代码学的上面 很模板 阅读全文
posted @ 2016-07-28 00:11 Helica 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 平面最远点对 由于点数为1e5,而整数点的情况下,凸包上点的个数为sqrt(M),M为范围。 这样求出凸包之后n^2枚举维护距离就可以了 否则就用旋转卡壳。 这里用了挑战上的做法,比较简洁。 阅读全文
posted @ 2016-07-28 00:07 Helica 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 用每个点代表父节点到此点的边。建立一一映射后就可以用点权的方法处理了。 注意的是路径两端节点的处理 阅读全文
posted @ 2016-07-14 14:39 Helica 阅读(195) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页