BZOJ
文章平均质量分 81
Log_x
这个作者很懒,什么都没留下…
展开
-
LOJ#3109「TJOI2019」甲苯先生的线段树
AddressLOJ#3109 洛谷P5342 BZOJ5513Solution挺有意思的题。第一问就是暴力在树上跳,设答案为 sss。考虑第二问,单点的情况直接处理,设路径上深度最小的点为 xxx,先从简单的情况入手。对于从 xxx 往下走形成的长度为 h(h>1)h(h > 1)h(h>1) 的链,如果往下走的过程中都是往左孩子走,链的编号总和为 ∑i=0...原创 2020-01-31 22:42:53 · 351 阅读 · 0 评论 -
BZOJ1758 [WC2010]重建计划
Solution容易想到二分答案 midmidmid,将树上每条边减去 midmidmid,原问题被转化为求树上是否存在一条价值和大于等于 000 的路径,可以用点分治来做。 因为题目对路径长度有限制,记录之前处理的子树中某一长度的路径价值和的最大值。对重心的每一棵子树 BFSBFSBFS,则按照 BFSBFSBFS 序枚举点,路径的长度递增。 枚举之前处理的子树中的路径长度,则对于当...原创 2018-06-29 21:40:26 · 417 阅读 · 1 评论 -
BZOJ2510 弱题
AddressBZOJ2510Solution设 f[i][j]f[i][j]f[i][j] 表示第 iii 次操作后,标号为 jjj 的球的期望个数。记 pre[i]=i−1(2≤i≤n),pre[1]=npre[i]=i−1(2≤i≤n),pre[1]=npre[i] = i - 1(2 \le i \le n), pre[1] = n。则若第 i−1...原创 2018-04-22 22:13:34 · 347 阅读 · 2 评论 -
BZOJ4071 [APIO2015]巴邻旁之桥
AddressBZOJ4071 洛谷P3644Solution先把住宅和办公室在同侧的居民处理掉。注意到 k≤2k≤2k \le 2,进行分类讨论:当 k=1k=1k = 1 时记选择桥的位置为 xxx,则答案 =n+∑i=1n(|si−x|+|ti−x|)=n+∑i=1n(|si−x|+|ti−x|)= n + \sum \limits_{i = 1}^n...原创 2018-04-06 21:36:23 · 346 阅读 · 0 评论 -
BZOJ2896 桥
AddressBZOJ2896Solution容易想到一种暴力做法。每次删边后,把原图的边双连通分量缩点,原图变为一颗树。令树上的边权均为 1,则 A,BA,BA,B 点间桥的数量为 A,BA,BA, B 点所在的边双连通分量在树上的距离。设询问数为 QQQ, 时间复杂度 O(Q(N+M))O(Q(N+M))O(Q(N + M)),显然不能通过。考虑动态地改变这棵...原创 2018-03-25 16:25:21 · 354 阅读 · 0 评论 -
BZOJ2001 [HNOI2010]城市建设
AddressBZOJ2001 洛谷P3206Solution题目大概就是一个动态最小生成树,不强制在线。容易想到用 CDQ分治 来处理。考虑对一个修改的区间 [l,r][l,r][l, r]: 先加上那些肯定要加的边(把 [l,r][l,r][l, r] 中要修改的边全部加上后做 KruskalKruskalKruskal,那些仍然可以被加上的边),则当我们处理区间 ...原创 2018-03-24 17:26:19 · 429 阅读 · 0 评论 -
BZOJ4653 [NOI2016]区间
AddressBZOJ4653 洛谷P1712Solution考虑怎样快速动态地判断一组方案是否合法。显然可以用线段树维护,先对所有区间离散化,加入区间 [li,ri][li,ri][l_i, r_i] 时就把该区间内每个位置都加上 1,删去就是减去 1,并维护区间的最大值。记线段树根节点维护的最大值为 numnumnum,则当 num=mnum=mnum = m 时...原创 2018-03-03 15:15:11 · 250 阅读 · 0 评论 -
BZOJ4552 [HEOI2016/TJOI2016]排序
AddressBZOJ4552 洛谷P2824Solution很有意思的题。先考虑如果序列中的数字只有 0 和 1 的情况: 记修改区间 [l,r][l,r][l, r] 中 1 的数量为 sumsumsum。对于升序排序,即将区间 [l,r−sum][l,r−sum][l, r - sum] 全部标记为 0,区间 [r−sum+1,r][r−sum+1,r][r - ...原创 2018-02-24 15:29:53 · 370 阅读 · 0 评论 -
BZOJ3251 树上三角形
AddressBZOJ3251Solution正解没想出来还把 LCA 写挂了,实在太弱了。先考虑一种暴力,把 u→vu→vu \to v 路径上所有点权取出,按从小到大排序,则我们只需要判断相邻的三个元素是否能构成三角形即可。一个简单的解释: 假设排序完后的序列为 a1,a2,...,ama1,a2,...,ama_1, a_2, ... , a_m,枚举三角形的最长...原创 2018-03-10 17:43:32 · 448 阅读 · 0 评论 -
BZOJ1002 [FJOI2007]轮状病毒
AddressBZOJ1002 洛谷P2144Solution考虑怎样构造一种方案。对于周围的 nnn 个点组成的环,我们将其拆分成任意条链,并在每一条链上选择任意一个点向中心点连接一条边,这样显然就是一种合法方案。于是我们就可以用 DP 来计算方案数了。设 f[i]f[i]f[i] 表示拆分到第 iii 个点为止的方案数,则 f[i]=∑j=1if[i−j]×jf[i...原创 2018-02-21 15:42:43 · 320 阅读 · 0 评论 -
BZOJ2330 [SCOI2011]糖果(差分约束模板)
AddressBZOJ2330 洛谷P3275Solution先来考虑一个简单的问题,给出这三个关系式,求 A−CA−CA - C 的最小值。 ⎧⎩⎨⎪⎪(1)(2)(3) A−C≥4 A−B≥3 B−C≥2{(1) A−C≥4(2) A−B≥3(3) B−C≥2 \left \{\begin{array}{r...原创 2018-02-06 13:35:01 · 263 阅读 · 0 评论 -
BZOJ3572 [HNOI2014]世界树
AddressBZOJ3572 洛谷P3233Solution先建出虚树。记 id[x]id[x]id[x] 表示距离点 xxx 最近的关键点编号,dis[x]dis[x]dis[x] 表示距离点 xxx 最近的关键点距离。那么对于一个点 xxx,最近的关键点既能从它的父节点转移过来,也能从它的子节点转移过来,因此做正反两遍转移。得到这些以后,我们考虑树上所有点的关...原创 2018-02-19 15:52:32 · 493 阅读 · 2 评论 -
BZOJ2742 [HEOI2012]Akai的数学作业
Description这里是广袤无垠的宇宙这里是一泻千里的银河这里是独一无二的太阳系这里是蔚蓝色的地球这里,就是这里,是富饶的中国大陆!这里是神奇的河北大地这里是美丽的唐山这里是神话般的唐山一中这里是Akai曾经的教室黑板上还留有当年Akai做过的数学作业,其实也并不是什么很困难的题目: “给出一个一元n次方程:a0+a1x+a2x2+…+anxn=0a0+a1x+a2x2...原创 2018-02-08 14:59:38 · 329 阅读 · 0 评论 -
BZOJ2434 [NOI2011]阿狸的打字机
AddressBZOJ2434 洛谷P2414Solution先把所有输出的字符串建成 TrieTrieTrie 树,但不用存字符串,因为输入字符的过程就相当于在 TrieTrieTrie 树上走。 考虑暴力的做法: 建出 failfailfail 指针。 对于每次查询,沿着第 yyy 个字符串在 TrieTrieTrie 树上的节点跳 failfailfail, 统...原创 2018-06-26 15:09:13 · 279 阅读 · 0 评论 -
BZOJ4567 [SCOI2016]背单词
AddressBZOJ4567 洛谷P3294Solution简化下题目,对于排在第 xxx 个位置的串: 1.若存在该串的后缀排在该串后面,该串的代价为 n2n2n^2。 2.若该串没有后缀,代价为 xxx。 3.若该串的所有后缀都排在该串前面,记最靠近该串的后缀位置为 yyy,代价为 x−yx−yx - y。显然只要把所有串翻转,则后缀都变成了前缀,建出 Trie...原创 2018-06-29 22:35:09 · 352 阅读 · 0 评论 -
BZOJ4500 矩阵
AddressBZOJ4500Solution设 xixix_i 表示第 iii 行 +1+1+1 和 −1−1-1 操作次数的差,yiyiy_i 表示第 iii 列 +1+1+1 和 −1−1-1 操作次数的差。则对于每个限制 (i,j,c)(i,j,c)(i, j, c):xi+yj=cxi+yj=cx_i + y_j = c。即 xi+yj≥c &nb...原创 2018-07-04 12:41:56 · 460 阅读 · 0 评论 -
LOJ#2004「SDOI2017」硬币游戏
AddressLOJ#2004 洛谷P3706 BZOJ4820Solution尝试把这题讲得更为清楚些。Part 1左转这道题的弱化版 BZOJ1444 [JSOI2009]有趣的游戏。考虑建出 AC 自动机,则一个长度任意的字符串对应了 AC 自动机上的一条有向路径(可经过重复点)。直观的想法是设 PiP_iPi 表示到达 AC 自动机上结点 iii 的概率,最后答案即...原创 2019-08-22 10:22:03 · 360 阅读 · 0 评论 -
BZOJ5306 [HAOI2018]染色
AddressBZOJ5306 洛谷P5306Solution暴力推式子。枚举出现 sss 次的颜色种数,则剩余颜色出现次数不能为 sss 次,由容斥原理得:ans=∑i=0min{⌊ns⌋,m}Cmin!Wi(s!)i(n−is)!∑j=0min{⌊ns⌋,m}−i(−1)jCm−ij(n−is)!(m−i−j)n−is−js(s!)j(n−is−js)!ans = \sum ...原创 2019-02-07 20:39:24 · 278 阅读 · 0 评论 -
BZOJ2655 calc
AddressBZOJ2655 洛谷P4463Solution先统计序列元素递增的贡献和,答案就为 贡献和 ×n!\times n!×n!。设 f[i][j]f[i][j]f[i][j] 表示前 iii 个数选的最大的数 ≤j\le j≤j 的贡献和,转移显然为 f[i][j]=f[i−1][j−1]×j+f[i][j−1]f[i][j] = f[i - 1][j - 1] \tim...原创 2019-01-31 21:30:55 · 365 阅读 · 0 评论 -
BZOJ4543 [POI2014]Hotel加强版
AddressBZOJ4543 BZOJ3522Solution三个点两两距离相等,相当于选出三条长度相等且只有唯一公共点的路径。设 f[x][i]f[x][i]f[x][i] 表示点 xxx 的子树内与点 xxx 距离为 iii 的点数,转移显然为:f[x][i]=∑y∈children[x]f[y][i−1]f[x][i] =\sum\limits_{y \in children...原创 2019-01-13 14:07:28 · 399 阅读 · 0 评论 -
BZOJ4816 [SDOI2017]数字表格
AddressBZOJ4816 洛谷P3704Solution莫比乌斯套路题。求 ∏i=1n∏i=1mf[(i,j)]\prod \limits_{i = 1}^{n} \prod \limits_{i = 1}^{m} f[(i, j)]i=1∏ni=1∏mf[(i,j)]。考虑枚举 t=(i,j)t = (i, j)t=(i,j),得:∏i=1n∏i=1mf[(i,j)...原创 2019-01-03 21:33:44 · 334 阅读 · 1 评论 -
BZOJ2844 albus就是要第一个出场
AddressBZOJ2844 洛谷P4869Solution建出原序列的线性基。我们知道线性基有如下性质:线性基中元素的子集异或和的集合和原序列的子集异或和的集合相同。线性基中的任意元素不属于其它元素的子集异或和的集合。由性质 2 得:在线性基中任选一个子集的异或和都互不相同,若线性基中共有 kkk 个元素,就共有 2k2^k2k 种互不相同的异或和。由性质 1 ...原创 2020-01-31 15:17:01 · 239 阅读 · 0 评论 -
BZOJ5210 最大连通子块和
AddressBZOJ5210Solution令 a[i]a[i]a[i] 表示点 iii 的权值,f[i]f[i]f[i] 表示包含点 iii 的最大连通子块,g[i]=∑v∉son[i]f[v]g[i] = \sum \limits_{v \notin son[i]} f[v]g[i]=v∈/son[i]∑f[v],转移有:f[i]=max{0,a[i]+g[i]+f[so...原创 2018-12-02 23:03:44 · 310 阅读 · 0 评论 -
BZOJ1492 [NOI2007]货币兑换
AddressBZOJ1492 洛谷P4027Solution因为傻逼错误调了一下午。有一个贪心策略:每次买入或卖出时都是全部买入或全部卖出。于是分别设 fi,xi,yifi,xi,yif_i,x_i,y_i 表示到第 iii 天时的最大收益、最多能购买的 AAA 劵数量、最多能购买的 BBB 劵数量,则转移为:fi=maxj=1i−1{fi−1,Ai×xj+Bi×yj}...原创 2018-07-31 19:48:09 · 239 阅读 · 0 评论 -
BZOJ1023 [SHOI2008]仙人掌图
AddressBZOJ1023 洛谷P4244Solution第一次做仙人掌图。主要难在环中 DP 值的处理。注意题目中提到的性质: 仙人图上的每条边,或者是这张仙人图的桥,或者在且仅在一个简单回路里,两者必居其一。 所以当然先写个 TarjanTarjanTarjan 啦 。TarjanTarjanTarjan 也是在 DFSDFSDFS,考虑 DPDPD...原创 2018-07-21 21:53:34 · 347 阅读 · 0 评论 -
BZOJ2064 分裂
AddressBZOJ2064Solution只可意会不可言传?不存在的。但感觉这题解法很神,代码也很神。可以知道操作次数的上界是 n+m−2n+m−2n + m - 2 次(n−1n−1n - 1 次合并成一块后再分裂 m−1m−1m - 1 次)。考虑如果能把初始状态和目标状态分成和对应相等的两组,那么操作次数就变为 n+m−2×2n+m−2×2n + m - 2 \t...原创 2018-07-21 21:17:54 · 278 阅读 · 0 评论 -
BZOJ1151 [CTSC2007]动物园
AddressBZOJ1151 洛谷P3622Solution难得自己搞出来道DP~。因为小朋友能看到的围栏只有五个,容易想到用二进制表示这五个围栏里动物的状态(是否被移走)。设 f[i][j]f[i][j]f[i][j] 表示处理到第 iii 个围栏,第 iii ~ i+4i+4i + 4 个围栏的状态为 jjj 最多能使多少个小朋友高兴,num[i][j]num[i]...原创 2018-07-05 22:19:40 · 439 阅读 · 0 评论 -
BZOJ3495 [PA2010]Riddle
AddressBZOJ3495Solution很容易想到是 2−SAT2−SAT2-SAT 判断是否有解。满足每条边至少有一个端点是首都很好处理,对于每一条边 (x,y)(x,y)(x, y): 不选 xxx 就一定要选 yyy。不选 yyy 就一定要选 xxx。对于每个郡 {a1,a2,...,aw}{a1,a2,...,aw}\{a_1, a_2, ... ,...原创 2018-07-04 19:46:21 · 329 阅读 · 0 评论 -
BZOJ2302 [HAOI2011]Problem c
Address洛谷P2523 BZOJ2302Solution先考虑无解的情况,我们记 s[i]s[i]s[i] 表示已经确定的 mmm 人中编号 ≥i≥i\ge i 的人数。那么如果存在 s[i]>n−i+1s[i]>n−i+1s[i] > n - i + 1,显然无解。进一步的,对于有解的情况我们可以想到一个状态 f[i][j]f[i][j]f[i][j]...原创 2018-02-08 14:51:02 · 246 阅读 · 0 评论 -
BZOJ2734 [HNOI2012]集合选数
Address洛谷P3226 BZOJ2734Solution讲真,这题看上去一点不像状压。若 xxx 在该子集中,则 2x2x2x 和 3x3x3x 不能在该子集中,考虑构造出一个矩阵: 1248...361224...9183672...2754108216..................13927...261854...41236108...82472216.....原创 2018-02-08 14:45:29 · 235 阅读 · 0 评论 -
BZOJ2253 [2010 Beijing wc]纸箱堆叠
AddressBZOJ2253DescriptionP工厂是一个生产纸箱的工厂。纸箱生产线在人工输入三个参数n,p,an,p,a之后,可自动化生产三边边长如下的nn个纸箱 (a_mod_P,a2_mod_p,a3_mod_P)(a\_mod\_P,a^2\_mod\_p,a^3\_mod\_P)(a4_mod_p,a5_mod_p,a6_mod_P)(a^4\_mod\_原创 2018-01-06 18:13:38 · 456 阅读 · 0 评论 -
洛谷P2536 [AHOI2005]病毒检测
Problem Address洛谷P2536 BZOJ1966Solution TrieTrie树 + BFSBFS把询问的RNARNA片段建成一颗TrieTrie树,然后通过类似在TrieTrie树 “走” 来求出答案,这个过程用BFSBFS实现。考虑在广搜的队列节点上记录两个值:Q[][0]Q[][0]表示在TrieTrie树上走到的点,Q[][1]Q[][1]表示当前匹配到模板片段的位原创 2017-12-15 19:44:15 · 362 阅读 · 0 评论 -
BZOJ4033 [HAOI]树上染色
Time Limit: 10 Sec Memory Limit: 256 MBDescription有一棵点数为n的树,树边有边权。给你一个在0~n之内的正整数m,你要在这棵树中选择m个点,将其染成黑色,并 将其他的n-m个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。 问收益最大值是多少。Input第一行两个整数n,m。 接下来n-1行每行三个正整数原创 2017-07-24 18:43:36 · 1740 阅读 · 0 评论 -
BZOJ3932 [CQOI2015]任务查询系统
Description最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行 ),其优先级为Pi。同一时间可能有多个任务同时执行,它们的优先级可能相同,也可能不同。调度系统会经常向 查询系统询问,第Xi秒正在运行的任务中原创 2017-08-01 15:45:31 · 314 阅读 · 0 评论 -
BZOJ1835 [ZJOI2010]base 基站选址
Description有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就成它被覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi。现在的问题是,选择基站的位置,使得总费用最小。Input输入数据 (base.in) 输入文件的原创 2017-08-02 08:27:16 · 540 阅读 · 0 评论 -
洛谷P3956 [NOIp2017]棋盘
分析在考场上乱搞了个DP……首先我们可以知道,这里的施展魔法实际上就相当于从一个有颜色的方块走到另一个与其距离为2的有颜色的方块那么由于这题盲目地往下和往右走显然没有正确性,我一开始的想法是设f[k][i][j]f[k][i][j]表示走了kk步到方块(i,j)(i, j)所花费的最少金币,转移就是从一个点走到另一个点加上花费的金币,不过这样的时空复杂度都有些难以承受……但我们可以发现:所有原创 2017-11-24 21:53:47 · 791 阅读 · 1 评论 -
BZOJ2006 [NOI2010]超级钢琴
题目描述小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。这架超级钢琴可以弹奏出nn个音符,编号为11至nn。第ii个音符的美妙度为AiA_i,其中AiA_i可正可负。一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于LL且不多于RR。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的,当原创 2017-11-17 19:30:04 · 358 阅读 · 0 评论 -
BZOJ4721 [Noip2016]蚯蚓
Description本题中,我们将用符号⌊c⌋\lfloor c \rfloor表示对cc向下取整,例如:⌊3.0⌋=⌊3.1⌋=⌊3.9⌋=3\lfloor 3.0 \rfloor = \lfloor 3.1 \rfloor = \lfloor 3.9 \rfloor =3。蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。蛐蛐国里现在共有nn只蚯蚓原创 2017-08-03 08:36:22 · 332 阅读 · 0 评论 -
BZOJ4719 [Noip2016]天天爱跑步
Description小C同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。这个游戏的地图可以看作一棵包含NN个结点和N−1N-1条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从11到NN的连续正整数。现在有MM个玩家,第个玩家的起点为SiS_i,终点为TiT_i。每天打卡任务开...原创 2017-08-14 15:58:53 · 486 阅读 · 0 评论 -
BZOJ3530 [SDOI2014]数数
AC自动机+DP记 f[i][j][k] 表示当前已经确定到第 i 位数,走到 AC 自动机上的节点 j,且状态为 k 的总方案数。原创 2017-07-14 19:46:03 · 605 阅读 · 0 评论