BZOJ题解By_ZZK
文章平均质量分 50
来自蒟蒻ZZK的BZOJ题解,真的很弱。(已作废:P)
ZigZagK
一个蒟蒻。
展开
-
【贪心+堆+链表】BZOJ1150(CTSC2007)[数据备份Backup]题解
题目概述有 nn 个在一条直线上的办公楼,距原点距离为 s[i]s[i] , 现在要建立 KK 个连接两个办公楼的网络电缆,每个电缆的代价为两个办公楼间的距离。每个办公楼不能被超过一条网络电缆连接,求最小代价。解题报告选相邻两个建肯定是最优秀的,比如:x==x==x==x那么贪心的想法就是用堆取出前 KK 个最短的线段,但是由于端点不能共用,所以每次取出最短的可能不如不取该线段,如:x==x==x=原创 2017-09-06 20:52:33 · 367 阅读 · 0 评论 -
【约数和公式+DFS】BZOJ3629(JLOI2014)[聪明的燕姿]题解
题目概述求约数和为 nn 的数有哪些。解题报告约数和公式为 ∏p|n(∑pi|npi)\prod_{p|n}(\sum_{p^i|n}p^i) ,其中 pp 是质数。然后我们会发现 >n√>\sqrt{n} 的 pp 只有一个,可以考虑枚举每个 pp 的个数。由于要求所有满足条件的数,所以DFS……数据范围很迷……示例程序#include<cstdio>#include<cmath>#inclu原创 2017-09-08 22:00:05 · 781 阅读 · 0 评论 -
【阈值优化】BZOJ1257(CQOI2007)[余数之和sum]
题目概述求 ∑mi=1n mod i\sum_{i=1}^{m} n\ mod\ i 。解题报告令 n=mk+wn=mk+w ,则答案就是 ∑w\sum w ,我们只要枚举 mm 和 kk 就能确定 ww 。只枚举 mm 或 kk 都会炸,所以我们想到 mm 和 kk 都枚举,这样范围就会缩小到 n√\sqrt n :m:1−n√→k:n−n√k:1−n√→m:n−n√m:1-\sqrt n\to原创 2017-08-20 13:50:33 · 605 阅读 · 0 评论 -
【贪心】BZOJ3410(Usaco2009 Dec)[Selfish Grazing 自私的食草者]题解
题目概述有 nn 头奶牛,第 ii 头奶牛的吃草范围是 (li,ri)(l_i,r_i) ,任何两头奶牛的吃草范围没有交集才可以在一起吃草。问最多有多少奶牛可以一起吃草。解题报告前年我竟然做过这题!那时候的初始想法是DP,但是 nn 比较大所以TLE了。先排序,然后我们记录一个位置 lastlast 表示目前最后一头牛的 rr 。对于目前的牛 ii ,如果 li≥lastl_i\ge l原创 2017-08-15 21:11:21 · 691 阅读 · 0 评论 -
【贪心+ST算法+堆】BZOJ4458[GTY的OJ]题解
题目概述有 nn 个目录,每个目录有一个父亲目录和靠谱值,一个题目由若干个目录构成,其中任何一个目录都是别的目录的子孙和祖先,一个题目的靠谱值是所有目录靠谱值的和。需要选 kk 个目录数量范围在 [L,R][L,R] 且不相同的题目,使得靠谱值最大。解题报告和BZOJ2006套路是一样的,只不过做到了树上。所以我们使用树上RMQ就行了。示例程序#include<cstdio>#include<cm原创 2017-08-10 09:09:01 · 900 阅读 · 0 评论 -
【AC自动机-fail树+树链合并】BZOJ3881(Coci2015)[Divljak]题解
题目概述有 nn 个字符串,第 ii 个字符串是 sis_i 。还有另一个字符串集合 TT 和 mm 个操作,操作格式如下:1.向字符串集合 TT 中加入一个字符串 SS 。2.询问 TT 中有几个字符串出现了 sxs_x 。解题报告首先我们会想到把 nn 个字符串建成AC自动机,并构造出 failfail 树。这样的话,每次新加入一个字符串 SS ,记录 SS 在AC自动机上出现的位置。对于位置原创 2017-08-08 23:11:41 · 884 阅读 · 0 评论 -
【AC自动机-fail树+离线+DFS序+树状数组】BZOJ2434(Noi2011)[阿狸的打字机]题解
题目概述有一台打字机,可以:在字符串末尾插入一个小写字母。删除字符串末尾的一个小写字母。输出当前字符串。还有 mm 个询问,每个询问 x,yx,y 表示求第 xx 个输出的字符串在第 yy 个输出的字符串中的出现次数。解题报告观察打字的过程,我们发现这其实就是在构造一棵Trie:在字符串末尾插入一个小写字母 →\to 在当前节点 nownow 扩展一个字符。删除字符串末尾的一个小写字母原创 2017-08-08 11:54:46 · 559 阅读 · 0 评论 -
【贪心+ST算法+堆】BZOJ2006(NOI2010)[超级钢琴]题解
题目概述给出一个序列,选出 kk 个长度在 [L,R][L,R] 的子段(不可选重),求 kk 个子段的和的最大值。解题报告如果我们把所有长度在 [L,R][L,R] 的子段都处理出来并从大到小排序,那么根据贪心,肯定选前 kk 个最优秀。但我们不可能把所有满足要求的子段都处理出来:太多了。需要注意到的是, kk 并不是很大,所以我们要想办法每次都选最大的满足要求的子段, 选 kk 次累加起来就是答原创 2017-08-08 18:32:46 · 1230 阅读 · 3 评论 -
【前后缀优化建图+2-SAT】BZOJ3495(PA2010)[Riddle]题解
题目概述有 nn 个点, mm 条边和 KK 个国家(国家里的点已知)。每个国家只能选一个点作为首都,并且要保证最后所有边的两端至少有一个点是首都,问是否存在方案。解题报告每个点是首都或不是首都,只有两个状态,所以是2-SAT问题。mm 条边的限制很容易转化,就是每个国家只能选一个点为首都比较奇怪。 其实这是典型的前后缀优化建图,这里以前缀优化建图为例: 首先我们先增加 nn 个点,令 ii 的原创 2017-07-28 23:37:23 · 1495 阅读 · 1 评论 -
【二分+有源汇上下界可行流】BZOJ2406[矩阵]题解
题目概述直接盗图。 解题报告哇,完全不会啊,于是去看题解。但看到“二分+上下界网络流”之后我就打算自己想一想,有了“二分”这个重要信息,还是能琢磨出些门道的: 二分答案 midmid ,那么对于 ∀i\forall i 均有 |∑mj=1(Ai,j−Bi,j)|≤mid|\sum_{j=1}^{m}(A_{i,j}-B_{i,j})|\le mid ,记录 SAi=∑mj=1Ai,jSA_i=\原创 2017-07-27 23:13:57 · 573 阅读 · 0 评论 -
【有源汇上下界最小流】BZOJ2502[清理雪道]题解
题目概述有 nn 个点, mm 条单向雪道,现在有一种操作:选择一个点 xx 开始,沿着单向雪道滑行,同时清理滑过的雪道。问最少几次操作能够清理完所有雪道。解题报告每个雪道至少清理一次,最多没有限制,所以就是上下界为 [1,∞][1,∞] 的一条边。 我们有很显然的贪心:每次操作从入度为0的点开始(建超级源 SS ),到出度为0的点结束(建超级汇 TT )。接下来刷有源汇上下界最小流即可。示例程序原创 2017-07-26 15:02:46 · 437 阅读 · 0 评论 -
【线段树优化建图+费用流Spfa增广】BZOJ4276(ONTAK2015)[Bajtman i Okrągły Robin]题解
题目概述有n个强盗,第i个强盗将在[LiL_i,RiR_i]内选一段长度为1的时间盗窃cic_i元,每个长度为1的时间只能阻止一个强盗,求最大能挽回的损失。解题报告这是分配类型的题目,考虑最大费用最大流。 先将超级源S与每一个强盗i建容量为1,费用为ci的边。然后将每一个强盗i与[LiL_i,RiR_i-1]所有时刻建容量为1,费用为0的边。再将每一个时刻与超级汇T建容量为1,费用为0的边。最后刷原创 2017-07-21 22:26:32 · 1187 阅读 · 2 评论 -
【线段树优化建图+BFS】BZOJ3073(Pa2011)[Journeys]题解
题目概述有n个点和m条信息,每条信息a,b,c,d表示将[a,b]的每个点和[c,d]的每个点都建边,求从P出发到每个点的最短路。解题报告这道题是区间建图,所以需要用到线段树来优化建图。 ps:其实本来以为线段树优化建图是2-SAT建图的一种优化技巧,然后搜了搜发现线段树优化建图其实适用范围很广……我们先来讲讲线段树优化建图的姿势(实际情况中会有各种变形): 因为是区间之间的建边,所以我们会想到原创 2017-07-20 21:47:43 · 1570 阅读 · 2 评论 -
【半平面交】BZOJ1007(HNOI2008)[水平可见直线]题解
BZOJ1007题解。原创 2017-04-16 15:41:29 · 723 阅读 · 1 评论 -
【最大流Dinic】BZOJ1066(SCOI2007)[蜥蜴]题解
BZOJ1066题解。原创 2017-07-02 10:27:25 · 621 阅读 · 0 评论 -
【穷举+并查集】BZOJ1050(HAOI2006)[旅行comf]题解
BZOJ1050题解。原创 2017-06-30 09:36:09 · 820 阅读 · 1 评论 -
【平衡树】BZOJ1503(NOI2004)[郁闷的出纳员]题解
BZOJ1503题解。原创 2017-06-30 08:28:27 · 684 阅读 · 1 评论 -
【数学分析+DFS】BZOJ1053(HAOI2007)[反素数ant]题解
BZOJ1053题解。原创 2017-06-27 20:05:54 · 581 阅读 · 3 评论 -
【贪心+堆】BZOJ1029(JSOI2007)[建筑抢修]题解
BZOJ1029题解。原创 2017-06-17 16:32:26 · 974 阅读 · 2 评论 -
【并查集+LCT维护生成树】BZOJ3669(Noi2014)[魔法森林]题解
BZOJ3669题解。原创 2017-06-16 09:14:59 · 822 阅读 · 1 评论 -
【Trie+vector】BZOJ4896(Thu Summer Camp2016)[补退选]题解
BZOJ4896题解。原创 2017-06-13 21:14:23 · 854 阅读 · 1 评论 -
【状压DP】BZOJ1088(SCOI2005)[扫雷Mine]题解
BZOJ1088题解。原创 2017-06-03 08:10:28 · 725 阅读 · 1 评论 -
【逻辑推理+DP】BZOJ2523(Ctsc2001)[聪明的学生]题解
BZOJ2523题解。原创 2017-05-28 22:08:06 · 2385 阅读 · 3 评论 -
【贪心+DP】BZOJ1899(Zjoi2004)[Lunch 午餐]题解
BZOJ1899题解。原创 2017-05-22 21:37:25 · 1192 阅读 · 3 评论 -
【LCT】BZOJ2002(Hnoi2010)[Bounce 弹飞绵羊]题解
BZOJ2002题解。原创 2017-05-17 19:39:49 · 989 阅读 · 2 评论 -
【进制】BZOJ1110[砝码Odw]题解
题目概述有n个砝码,m个背包(n<=10^5,m<=10^5),每个背包大小为mi(mi<=10^9),每个砝码的大小为wi(wi<=10^9)。每两个砝码之间总有一个砝码是另外一个的正整数倍(也就是说可以相同)。解题报告因为题目里的砝码都是倍数关系,所以我们排序去重之后最多会得到30个砝码(log2(n)),然后对于一个背包,可以将他拆分成一个对应砝码的“数”。如果觉得有点难理解,我们拿这个例子说原创 2017-02-28 19:28:52 · 436 阅读 · 1 评论 -
【最小割->最短路】BZOJ1001(BeiJing2006)[狼抓兔子]题解
题目概述给出一张网格图,兔子从(1,1)逃向(n,m),有横向道路,纵向道路和对角线道路,每条道路都有一个流量限制(即最多能通过多少兔子),一只狼只能抓一只兔子。问最多在边上放置多少只狼才能完全堵截兔子。 解题报告一道神奇的题目。一眼看去果断最小割(求最大流),然而n和m巨大,足以让你爆炸。所以要另辟蹊径。这道题的最小割肯定是从左或下割到右或上,但是由于这是网格图,割过去肯定会经过题目给出的那些边原创 2017-03-25 21:14:19 · 576 阅读 · 2 评论 -
【平衡树维护序列】BZOJ1500(NOI2005)[维修数列]题解
BZOJ1500题解。原创 2017-03-31 09:19:01 · 900 阅读 · 0 评论 -
【后缀数组】BZOJ1031(JSOI2007)[字符加密Cipher]题解
BZOJ1031题解。原创 2017-04-07 16:13:59 · 537 阅读 · 1 评论 -
【Tarjan】BZOJ1051(HAOI2006)[受欢迎的牛]题解
BZOJ1051题解。原创 2017-04-08 23:01:26 · 548 阅读 · 1 评论 -
【高斯消元】BZOJ1013(JSOI2008)[球形空间产生器sphere]题解
BZOJ1013题解。原创 2017-04-14 16:14:56 · 669 阅读 · 1 评论 -
【费用流Spfa增广】BZOJ1070(SCOI2007)[修车]题解
BZOJ1070题解。原创 2017-04-24 20:24:34 · 435 阅读 · 0 评论 -
【DP+KMP+矩阵乘法】BZOJ1009(HNOI2008)[GT考试]题解
BZOJ1009题解。原创 2017-05-03 08:32:38 · 633 阅读 · 0 评论 -
【Kruskal+DFS】BZOJ1016(JSOI2008)[最小生成树计数]题解
BZOJ1016题解。原创 2017-05-01 19:10:25 · 606 阅读 · 0 评论 -
【DP】BZOJ4300[绝世好题]题解
BZOJ4300题解。原创 2017-05-05 08:53:27 · 552 阅读 · 1 评论 -
【平衡树维护序列+Hash求LCP】BZOJ1014(JSOI2008)[火星人prefix]题解
BZOJ1014题解。原创 2017-04-25 08:20:55 · 552 阅读 · 0 评论 -
【IDA*】BZOJ1085(SCOI2005)[骑士精神]题解
BZOJ1085题解。原创 2017-05-09 17:53:41 · 680 阅读 · 1 评论 -
【浅谈轮廓线DP】BZOJ1087(SCOI2005)[互不侵犯King]题解
【浅谈轮廓线DP】BZOJ1087题解。原创 2017-05-09 21:34:51 · 852 阅读 · 0 评论 -
【二分+匈牙利】BZOJ4443(Scoi2015)[小凸玩矩阵]题解
BZOJ4443题解。原创 2017-05-11 18:56:58 · 566 阅读 · 0 评论