摘要: 树套树。。我写了线段树套treap= =外层线段树表示各段区间,每段区间内按权值大小开个treap 设数列为map[],一开始求出逆序对个数。 每次假设交换l和r这两位置的数,答案就要减去[l+r,r-1]中比map[l]小的数的个数,再减去[l+1,r-1]中比map[r]大的数的个数, ... 阅读全文
posted @ 2016-01-15 14:38 czllgzmzl 阅读(283) 评论(2) 推荐(0) 编辑
摘要: 人生第一道树套树。。(虽然暑假就写了= =) 这题是树状数组里面套个可持久化线段树。。。一开始想反了然后发现完全不会写TAT 一般的树状数组操作的时候是直接修改数组里的值的,套上可持久化线段树后就变成在相应的那颗线段树里面修改了。 修改操作就一个一个改,但查询第k大的时候要先把对应的线段树... 阅读全文
posted @ 2016-01-13 14:28 czllgzmzl 阅读(216) 评论(0) 推荐(0) 编辑
摘要: splay维护区间内的hash值+二分答案。。。 一开始脑残跑去维护各个前缀的hash值。。结果发现修改的时候没法打懒标记(也可能是我太弱不会) 跑去看黄学长题解发现直接维护区间内的hash值就可以了。。而且挺容易合并的TAT(其实挺显然的,都用splay了为啥还不维护区间的hash值。。。... 阅读全文
posted @ 2016-01-06 21:05 czllgzmzl 阅读(291) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2016-01-04 21:49 czllgzmzl 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 如果算上调stl的话这题似乎有很多种做法。。。调set、map,敲线段树、spaly。。blabla 完美地避开了正解TAT 题目要求维护一坨数,能够随时插入,查询相邻的数的最小差值,查询任意两数间的最小差值。 第二问比较好写,然而人太弱不会调set。。于是写了个treap。。每次插入后查... 阅读全文
posted @ 2016-01-04 21:40 czllgzmzl 阅读(248) 评论(0) 推荐(0) 编辑
摘要: bzoj 2197: [Usaco2011 Mar]Tree Decoration 树形dp。。f[i]表示处理完以i为根的子树的最小时间。 因为一个点上可以挂无数个,所以在点i上挂东西的单位花费就是i所在子树里的最小单位花费。。 所以每次求f[i]只要使子树里的数量都满足要求就好了。。i的祖先还要 阅读全文
posted @ 2015-12-29 13:39 czllgzmzl 阅读(414) 评论(0) 推荐(0) 编辑
摘要: dp+单调队列优化TAT。。一开始有个条件没细想结果方程推错了TAT。 主要是转移的时候强制留下哪个点作为回去的落脚点的问题= =。。 预处理出presum[i]表示1~i个格子中,正数的前缀和(因为在K的小范围内肯定会贪心地选正数的点跳),val[i]表示第i个格子上的数字。 f[i]表示当前跳到 阅读全文
posted @ 2015-12-28 21:46 czllgzmzl 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 续。。。。。TAT这回不到50题编辑器就崩了。。这里塞40道吧= =bzoj 1585:[Usaco2009 Mar]Earthquake Damage 2 地震伤害 比较经典的最小割?。。然而一开始还是不会QAQ 和地震伤害1的区别在于这题求的是最少的损坏牧场数目。把牧场拆点,因为要让1和被报... 阅读全文
posted @ 2015-12-24 20:15 czllgzmzl 阅读(558) 评论(0) 推荐(0) 编辑
摘要: UPD:我真不是想骗访问量TAT。。一开始没注意总长度写着写着网页崩了王仓(其实中午的时候就时常开始卡了= =)。。。。损失了2h(幸好长一点的都单独开了一篇)。。。。吓得赶紧分成两坨。。。。TAT。。。。。。。。。。。。。。—————————————————————————————————————... 阅读全文
posted @ 2015-12-24 20:13 czllgzmzl 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 二分答案(二分没冲突的前Q-1个问题),用并查集判定(用法同bzoj 1576) 假设一个询问区间[l,r],最小干草堆数目是A,我们可以得出[l,r]上的干草堆数目都>=A。 二分出mid后,把1~mid个询问按照最小干草数量A降序排序。。如果这些询问的回答自相矛盾的话,就存在一个询问区间[l,r 阅读全文
posted @ 2015-12-24 19:35 czllgzmzl 阅读(559) 评论(4) 推荐(0) 编辑