上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页
摘要: LCT + 树上倍增 和bzoj的弹飞绵羊差不多,多了一个倍增记录父亲节点。 这里有个小技巧,把飞出去的点当成第1个比较好操作。。不像弹飞绵羊是第n+1个,因为这里是往上跳,所以出去了的话我们的父亲节点就是0,直接把节点+1当初LCT中的点就好了 include define INF 0x3f3f3 阅读全文
posted @ 2019-05-30 21:03 清楚少女ひなこ 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 优先队列 + 思维 不然想到肯定是先杀能杀的,这样攻击力就会越来越高,杀的也就越多。 所以可以开k个优先队列,每一个属性属于一个队列,一开始把所有怪放进第一个队列里,满足击杀条件就一次往之后的队列扔。 当扔到第k个队列时,如果能击杀,就可以击杀了。 这样能在最短的时间内统计能够击杀的数量。。 inc 阅读全文
posted @ 2019-05-30 17:06 清楚少女ひなこ 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 矩阵快速幂 转移矩阵很容易看出来,关键是p/i怎么处理。。 其实是有规律的。。第i项的p/i是x,那么第p / (p / i)项也是x。。且中间全是x。。 然后分段转移就行了 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, s 阅读全文
posted @ 2019-05-29 21:21 清楚少女ひなこ 阅读(213) 评论(0) 推荐(0) 编辑
摘要: dijkstra 应该是签到题了。。最短路裸题,优先队列维护就行了 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, sizeof a) define FAST_IO ios::sync_with_stdio(false), c 阅读全文
posted @ 2019-05-29 13:12 清楚少女ひなこ 阅读(118) 评论(0) 推荐(0) 编辑
摘要: dfs + 并查集 因为题目不限制狼人的数量,所以无法确定村民有多少个。。因为每一局都有可能全是狼人。。 所以我们要计算的只有一定是狼的数量。 我们把每个玩家当成节点,在一个村民链中,如果该链与一条狼边形成一个环,那么可以推理出这条狼边指向的节点一定是狼。 因为村民不可能说谎,如果假设这条狼边指向的 阅读全文
posted @ 2019-05-29 12:26 清楚少女ひなこ 阅读(219) 评论(0) 推荐(0) 编辑
摘要: CDQ分治 分成四个方向讨论最小值,把所有坐标全部离线处理。 把左边按x轴排序,保证x的顺序,然后树状数组维护每个方向需要的最值。。 然后CDQ分治。。必须手动撤销树状数组的修改,保证分治的时间复杂度。 include define INF 0x3f3f3f3f define full(a, b) 阅读全文
posted @ 2019-05-29 11:12 清楚少女ひなこ 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 全排列枚举 这题不能用贪心的。。反例很多。。 有一个最暴力的方法就是枚举所有全排列,在n次交换内能复原就更新答案。 为了方便复原,我们枚举的全排列是原数的每个位数的位置的全排列。 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, 阅读全文
posted @ 2019-05-28 16:31 清楚少女ひなこ 阅读(141) 评论(0) 推荐(0) 编辑
摘要: st表 倒着用st表。 在rmq的时候,st表可以递推出区间的最值,这些最值是由若干个小区间组成,最小的区间就是这个数本身,也就是st\[i]\[0]。 对于这道题,我们可以倒着用st表,在每次操作的时候,我们先把\[l...r]这个区间用st表覆盖(相当于rmq的查询)。 然后再从最大的区间依次向 阅读全文
posted @ 2019-05-27 20:58 清楚少女ひなこ 阅读(158) 评论(0) 推荐(0) 编辑
摘要: dfs 每个4x4的宫格转了4次就变回原样了,所以最多转3次。 枚举没4行内的子矩阵,旋转后判断每行每列数是否冲突,在每次循环结束后子矩阵相当于没有转,因此遍历了每种情况。 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, si 阅读全文
posted @ 2019-05-22 22:55 清楚少女ひなこ 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 莫队 + 组合数 令f(n, m)表示从n个苹果中拿不超过m个的方法数。 则 f(n, m) = f(n, m 1) + C(n, m) 则 f(n + 1, m) = f(n, m) + f(n, m 1) = 2f(n, m) C(n, m) (相当于第n+1个苹果不取的方法数+取的方法数) 推 阅读全文
posted @ 2019-05-22 17:51 清楚少女ひなこ 阅读(127) 评论(0) 推荐(1) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页