倍增
Fizzmy
这个作者很懒,什么都没留下…
展开
-
Codeforces 356E Xenia and String Problem-倍增+贡献法
题意: 定义一种字符串gray串满足: 1.长度为奇数 2.正中间的字母只出现一次 3.左右两端相同,左右两端也是gray串 一个gray串的贡献为这个串长度的平方 现给你一个长为n的字符串,你可以修改至多一个字母,使得总贡献值最大 (n Solution: 可以发现gray串的长度是倍增的,所以最多有log种不同长度的gray串,这样的话我们可以考虑串中每个位置的贡献,这种贡献原创 2018-02-05 20:49:54 · 445 阅读 · 0 评论 -
Codeforces 331D3-线段树+扫描线+倍增
传送门 题意: 在n*n的坐标内给出一些箭头,给出一些出发点、出发方向以及出发时间,遇到箭头就需要改变方向为箭头的方向,对每个出发点求最后能走到哪 数据范围1e5 Solution: 口胡起来特别简单:对于不同方向的箭头和出发点分别用线段树+扫描线建出相应的图,最后在建出的图上跑倍增就可以了 我们可以把出发点看做没有长度的箭头,就可以和箭头一起搞了,在建图时我们可以添加一个中间...原创 2018-02-20 18:27:44 · 395 阅读 · 0 评论 -
BZOJ1717.产奶的模式-后缀数组+倍增
权限题。 题意: 求一个字符串中出现超过k次的最长子串,可重叠 (n<=20000) Solution: 先用后缀数组跑出height 然后我们知道一个性质:任意两个后缀的最长公共前缀就是它们之间所有height取min 那么这个问题就相当于枚举每个长为k-1的区间,在区间内部求min,每个区间求max,倍增解决即可 代码: #include<cstdio&g...原创 2018-03-06 16:41:45 · 224 阅读 · 0 评论