摘要: 裸的树链剖分+线段树 但是要注意一个地方……我WA了好几次才发现取完相反数之后max值和min值是要交换的…… cpp include include using namespace std; const int N=200005; int n,m,h[N],cnt,de[N],va[N],fa[N 阅读全文
posted @ 2018-09-10 21:59 lokiii 阅读(188) 评论(0) 推荐(0)
摘要: 比较基础的数位dp,dfs的时候带上上一位,上上位,是否已经有连续3个相同位,是否有4,是否有8即可 但是要注意两点(在洛谷上一直70) 当l=1e10的时候,直接输出clc(r)即可,因为如果再减去clc(l 1)的话,是会多减掉1的 还有判断前导0 cpp include include usi 阅读全文
posted @ 2018-09-10 19:22 lokiii 阅读(173) 评论(0) 推荐(0)
摘要: emmm妹想到要倒着推 先假设只在n建一个控制站,这样的费用是\\( \sum_{i=1}^{n} b[i]\ (n i) \\)的 然后设f[i]为在i到n键控制站,并且i一定建一个,能最多节省下的费用,那么显然转移是\\( f[i]=max(f[j]+s[i]\ (j i) a[i]) \\), 阅读全文
posted @ 2018-09-10 16:13 lokiii 阅读(199) 评论(0) 推荐(0)
摘要: 设f[i]为杀死i的最小代价,显然\\( f[i]=min(k[i],s[i]+\sum f[to]) \\) 但是这个东西有后效性,所以我们使用spfa来做,具体就是每更新一个f[i],就把能被它更新的点重新入队 cpp include include include include using 阅读全文
posted @ 2018-09-10 08:23 lokiii 阅读(153) 评论(0) 推荐(0)
摘要: 参考了这个http://www.cnblogs.com/Artanis/p/3751644.html,好像比一般方法好写 大概思想就是先计算出把所有石子都合并到1位置的代价,这样显然有一些是不优的,然后再分别计算把合并到1的石子合并到p,能优化多少 这个计算就是枚举2到tot位,对于每一位计算挪到这 阅读全文
posted @ 2018-09-10 07:41 lokiii 阅读(136) 评论(0) 推荐(0)