随笔分类 -  OJ——BZOJ

摘要:题目链接 Hard Nim 设$f[i][j]$表示前$i$个数结束后异或和为$j$的方案数 那么$f[i][j] = f[i-1][j$ $\hat{}$ $k]$,满足$k$为不大于$m$的质数。 这个$DP$太暴力了。让我们冷静分析。 设不大于m的质数从小到大分别为$c_{1}$, $c_{2 阅读全文
posted @ 2018-03-13 23:36 cxhscst2 阅读(305) 评论(0) 推荐(0)
摘要:题目链接 BZOJ3083 换根不能真正地换。 令当前的根为$cnt$,要查找的子树根为$x$ $1$、$x = cnt$,那么要查找的区域就是整棵树。 $2$、$x$在以$cnt$为根的子树内,那么要查找的区域就是以$x$为根的子树。 $3$、$x$在以$cnt$为根的子树外 (1)$x$不是$c 阅读全文
posted @ 2018-02-09 00:23 cxhscst2 阅读(282) 评论(0) 推荐(0)
摘要:题目链接 BZOJ 4568 考虑树链剖分+线段树维护每一段区域的异或线性基 对于每个询问,求出该点集的异或线性基。然后求一下这个线性基里面能异或出的最大值即可。 阅读全文
posted @ 2017-11-02 21:22 cxhscst2 阅读(235) 评论(0) 推荐(0)
摘要:题目链接 BZOJ4540 考虑莫队算法。 这题难在$[l, r]$到$[l, r+1]$的转移。 根据莫队算法的原理,这个时候答案应该加上 $cal(l, r+1) + cal(l+1, r+1) + cal(l+2, r+1) + ... + cal(r+1, r+1)$ $cal(l, r)$ 阅读全文
posted @ 2017-10-05 23:50 cxhscst2 阅读(182) 评论(0) 推荐(0)
摘要:题目链接 BZOJ4326 这个程序在洛谷上TLE了……惨遭卡常 在NOIP赛场上估计只能拿到95分吧= = 把边权转化成点权 首先求出每一条路径的长度 考虑二分答案,$check(now)$ 对于当前那些长度大于$now$的路径,用差分求出这些路径经过的点的次数 设这些路径条数为l, 长度最大的路 阅读全文
posted @ 2017-10-01 19:26 cxhscst2 阅读(237) 评论(0) 推荐(0)
摘要:题目链接 BZOJ 3675 首先最后的答案和分割的顺序是无关的, 那么就可以考虑DP了。 设$f[i][j]$为做了$i$次分割,考虑前$j$个数之后的最优答案。 那么$f[i][j] = max(f[i - 1][p] + (s[i] - s[p]) * s[p])$ 时间复杂度为$O(kn^{ 阅读全文
posted @ 2017-09-26 00:35 cxhscst2 阅读(182) 评论(0) 推荐(0)
摘要:题目链接 BZOJ 4810 首先对询问离线, 莫队算法处理。 首先我们可以用bitset维护处当前区间中是否存在某个数。 对于询问1, 我们可以用 ((f >> q[i].x) & f).any()来回答当前的询问。 对于询问2, 我们用((g >> (S - q[i].x)) & f).any( 阅读全文
posted @ 2017-09-23 00:45 cxhscst2 阅读(167) 评论(0) 推荐(0)
摘要:题目链接 BZOJ4034 这道题树链剖分其实就可以了。 单点更新没问题。 相当于更新 [f[x], f[x]]这个区间。 f[x]表示树链剖分之后每个点的新的标号。 区间更新的话类似DFS序,求出所对应的区间。 也就是[f[x], f[x] + size[x] - 1]。 给这个区间加上a即可。 阅读全文
posted @ 2017-09-05 20:25 cxhscst2 阅读(159) 评论(0) 推荐(0)
摘要:题目链接 HH的项链 这道题可以直接上主席树的模板 当然用莫队算法也是可以做的 阅读全文
posted @ 2017-09-02 17:51 cxhscst2 阅读(327) 评论(0) 推荐(0)
摘要:题目链接 楼房重建 解题思路:我们可以把楼房的最高点的斜率计算出来。那么问题就转化成了实时查询x的个数,满足数列x的左边没有大于等于x的数。 我们可以用线段树维护 设t[i]为如果只看这个区间,可以看到的楼房数量有多少。 f[i]为这个区间的x的最大值 更新的时候我们递归讨论。 计算t[i]时,区间 阅读全文
posted @ 2017-08-16 15:14 cxhscst2 阅读(169) 评论(0) 推荐(0)
摘要:题目链接 字符串折叠 区间DP。$f[l][r]$为字符串在区间l到r的最小值 正常情况下 $f[l][r] = min(f[l][r], f[l][l+k-1]+f[l+k][r]);$ 当$l$到$r$以$k$为周期时 $f[l][r] = min(f[l][r], 2+sz(k)+f[l][l 阅读全文
posted @ 2017-08-01 22:57 cxhscst2 阅读(247) 评论(0) 推荐(0)
摘要:题目链接 木棍分割 1044: [HAOI2008]木棍分割 Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连 接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少种砍的方法使 阅读全文
posted @ 2017-07-31 10:47 cxhscst2 阅读(470) 评论(0) 推荐(0)
摘要:题目链接 BZOJ2243 树链剖分 $+$ 线段树 线段树每个节点维护$lc$, $rc$, $s$ $lc$代表该区间的最左端的颜色,$rc$代表该区间的最右端的颜色 $s$代表该区间的所有连续颜色段数(仅考虑该区间) $lazy$表示延迟信息。 阅读全文
posted @ 2017-07-13 14:20 cxhscst2 阅读(203) 评论(0) 推荐(0)
摘要:PS:树链剖分的很基本的题 阅读全文
posted @ 2017-05-02 21:20 cxhscst2 阅读(162) 评论(0) 推荐(0)
摘要:题目链接 [Ahoi2009]chess 中国象棋 设$f[i][j][k]$为前i行,$j$列放了1个棋子,$k$列放了2个棋子的方案数 分6种情况讨论,依次状态转移。 阅读全文
posted @ 2017-04-11 21:30 cxhscst2 阅读(316) 评论(0) 推荐(0)
摘要:题目链接 [Scoi2010]序列操作 考验代码能力的一道好题。 思想还是很简单的(直接上线段树),但是比较难写。 阅读全文
posted @ 2017-04-11 19:27 cxhscst2 阅读(152) 评论(0) 推荐(0)
摘要:题目链接 小Q的无敌异或 好久之前做的这道题了……参照了别人的博客……还是没有全懂。 第一个问题维护个前缀就好了,第二个问题还要用树状数组维护…… 阅读全文
posted @ 2017-03-23 22:07 cxhscst2 阅读(299) 评论(0) 推荐(0)
摘要:[Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MB Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳。作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争。通过研究 阅读全文
posted @ 2017-02-20 20:28 cxhscst2 阅读(288) 评论(0) 推荐(0)
摘要:4300: 绝世好题 Description 给定一个长度为$n$的数列$ai$,求$ai$的子序列$bi$的最长长度,满足bi&bi-1!=0(2<=i<=len) 给定一个长度为$n$的数列$ai$,求$ai$的子序列$bi$的最长长度,满足bi&bi-1!=0(2<=i<=len) Input 阅读全文
posted @ 2017-02-16 16:49 cxhscst2 阅读(191) 评论(0) 推荐(0)
摘要:题目链接 松鼠的新家 差不多可以说是树链剖分的模板题了,直接维护即可。 阅读全文
posted @ 2017-01-26 23:51 cxhscst2 阅读(236) 评论(0) 推荐(0)