BZOJ题解
文章平均质量分 51
ZigZagK
一个蒟蒻。
展开
-
【浅谈轮廓线DP】BZOJ1087(SCOI2005)[互不侵犯King]题解
【浅谈轮廓线DP】BZOJ1087题解。原创 2017-05-09 21:34:51 · 849 阅读 · 0 评论 -
【半平面交】BZOJ1007(HNOI2008)[水平可见直线]题解
BZOJ1007题解。原创 2017-04-16 15:41:29 · 722 阅读 · 1 评论 -
【线段树优化建图+BFS】BZOJ3073(Pa2011)[Journeys]题解
题目概述有n个点和m条信息,每条信息a,b,c,d表示将[a,b]的每个点和[c,d]的每个点都建边,求从P出发到每个点的最短路。解题报告这道题是区间建图,所以需要用到线段树来优化建图。 ps:其实本来以为线段树优化建图是2-SAT建图的一种优化技巧,然后搜了搜发现线段树优化建图其实适用范围很广……我们先来讲讲线段树优化建图的姿势(实际情况中会有各种变形): 因为是区间之间的建边,所以我们会想到原创 2017-07-20 21:47:43 · 1569 阅读 · 2 评论 -
【穷举+并查集】BZOJ1050(HAOI2006)[旅行comf]题解
BZOJ1050题解。原创 2017-06-30 09:36:09 · 820 阅读 · 1 评论 -
【平衡树】BZOJ1503(NOI2004)[郁闷的出纳员]题解
BZOJ1503题解。原创 2017-06-30 08:28:27 · 682 阅读 · 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 · 820 阅读 · 1 评论 -
【Trie+vector】BZOJ4896(Thu Summer Camp2016)[补退选]题解
BZOJ4896题解。原创 2017-06-13 21:14:23 · 853 阅读 · 1 评论 -
【逻辑推理+DP】BZOJ2523(Ctsc2001)[聪明的学生]题解
BZOJ2523题解。原创 2017-05-28 22:08:06 · 2382 阅读 · 3 评论 -
【LCT】BZOJ2002(Hnoi2010)[Bounce 弹飞绵羊]题解
BZOJ2002题解。原创 2017-05-17 19:39:49 · 987 阅读 · 2 评论 -
【二分+匈牙利】BZOJ4443(Scoi2015)[小凸玩矩阵]题解
BZOJ4443题解。原创 2017-05-11 18:56:58 · 565 阅读 · 0 评论 -
【IDA*】BZOJ1085(SCOI2005)[骑士精神]题解
BZOJ1085题解。原创 2017-05-09 17:53:41 · 678 阅读 · 1 评论 -
【DP】BZOJ4300[绝世好题]题解
BZOJ4300题解。原创 2017-05-05 08:53:27 · 551 阅读 · 1 评论 -
【状压DP】BZOJ1088(SCOI2005)[扫雷Mine]题解
BZOJ1088题解。原创 2017-06-03 08:10:28 · 724 阅读 · 1 评论 -
【DP+KMP+矩阵乘法】BZOJ1009(HNOI2008)[GT考试]题解
BZOJ1009题解。原创 2017-05-03 08:32:38 · 631 阅读 · 0 评论 -
【Kruskal+DFS】BZOJ1016(JSOI2008)[最小生成树计数]题解
BZOJ1016题解。原创 2017-05-01 19:10:25 · 606 阅读 · 0 评论 -
【费用流Spfa增广】BZOJ1070(SCOI2007)[修车]题解
BZOJ1070题解。原创 2017-04-24 20:24:34 · 434 阅读 · 0 评论 -
【高斯消元】BZOJ1013(JSOI2008)[球形空间产生器sphere]题解
BZOJ1013题解。原创 2017-04-14 16:14:56 · 668 阅读 · 1 评论 -
【Tarjan】BZOJ1051(HAOI2006)[受欢迎的牛]题解
BZOJ1051题解。原创 2017-04-08 23:01:26 · 546 阅读 · 1 评论 -
【后缀数组】BZOJ1031(JSOI2007)[字符加密Cipher]题解
BZOJ1031题解。原创 2017-04-07 16:13:59 · 537 阅读 · 1 评论 -
【平衡树维护序列】BZOJ1500(NOI2005)[维修数列]题解
BZOJ1500题解。原创 2017-03-31 09:19:01 · 897 阅读 · 0 评论 -
【进制】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 · 435 阅读 · 1 评论 -
【平衡树维护序列+Hash求LCP】BZOJ1014(JSOI2008)[火星人prefix]题解
BZOJ1014题解。原创 2017-04-25 08:20:55 · 552 阅读 · 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 · 1184 阅读 · 2 评论 -
【贪心+ST算法+堆】BZOJ2006(NOI2010)[超级钢琴]题解
题目概述给出一个序列,选出 kk 个长度在 [L,R][L,R] 的子段(不可选重),求 kk 个子段的和的最大值。解题报告如果我们把所有长度在 [L,R][L,R] 的子段都处理出来并从大到小排序,那么根据贪心,肯定选前 kk 个最优秀。但我们不可能把所有满足要求的子段都处理出来:太多了。需要注意到的是, kk 并不是很大,所以我们要想办法每次都选最大的满足要求的子段, 选 kk 次累加起来就是答原创 2017-08-08 18:32:46 · 1228 阅读 · 3 评论 -
【最大流Dinic】BZOJ1066(SCOI2007)[蜥蜴]题解
BZOJ1066题解。原创 2017-07-02 10:27:25 · 620 阅读 · 0 评论 -
【贪心+ST算法+堆】BZOJ4458[GTY的OJ]题解
题目概述有 nn 个目录,每个目录有一个父亲目录和靠谱值,一个题目由若干个目录构成,其中任何一个目录都是别的目录的子孙和祖先,一个题目的靠谱值是所有目录靠谱值的和。需要选 kk 个目录数量范围在 [L,R][L,R] 且不相同的题目,使得靠谱值最大。解题报告和BZOJ2006套路是一样的,只不过做到了树上。所以我们使用树上RMQ就行了。示例程序#include<cstdio>#include<cm原创 2017-08-10 09:09:01 · 898 阅读 · 0 评论 -
【有源汇上下界最小流】BZOJ2502[清理雪道]题解
题目概述有 nn 个点, mm 条单向雪道,现在有一种操作:选择一个点 xx 开始,沿着单向雪道滑行,同时清理滑过的雪道。问最少几次操作能够清理完所有雪道。解题报告每个雪道至少清理一次,最多没有限制,所以就是上下界为 [1,∞][1,∞] 的一条边。 我们有很显然的贪心:每次操作从入度为0的点开始(建超级源 SS ),到出度为0的点结束(建超级汇 TT )。接下来刷有源汇上下界最小流即可。示例程序原创 2017-07-26 15:02:46 · 437 阅读 · 0 评论 -
【二分+有源汇上下界可行流】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 · 569 阅读 · 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 · 604 阅读 · 0 评论 -
【前后缀优化建图+2-SAT】BZOJ3495(PA2010)[Riddle]题解
题目概述有 nn 个点, mm 条边和 KK 个国家(国家里的点已知)。每个国家只能选一个点作为首都,并且要保证最后所有边的两端至少有一个点是首都,问是否存在方案。解题报告每个点是首都或不是首都,只有两个状态,所以是2-SAT问题。mm 条边的限制很容易转化,就是每个国家只能选一个点为首都比较奇怪。 其实这是典型的前后缀优化建图,这里以前缀优化建图为例: 首先我们先增加 nn 个点,令 ii 的原创 2017-07-28 23:37:23 · 1494 阅读 · 1 评论 -
【贪心+DP】BZOJ1899(Zjoi2004)[Lunch 午餐]题解
BZOJ1899题解。原创 2017-05-22 21:37:25 · 1184 阅读 · 3 评论 -
【贪心】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 评论 -
【AC自动机-fail树+离线+DFS序+树状数组】BZOJ2434(Noi2011)[阿狸的打字机]题解
题目概述有一台打字机,可以:在字符串末尾插入一个小写字母。删除字符串末尾的一个小写字母。输出当前字符串。还有 mm 个询问,每个询问 x,yx,y 表示求第 xx 个输出的字符串在第 yy 个输出的字符串中的出现次数。解题报告观察打字的过程,我们发现这其实就是在构造一棵Trie:在字符串末尾插入一个小写字母 →\to 在当前节点 nownow 扩展一个字符。删除字符串末尾的一个小写字母原创 2017-08-08 11:54:46 · 559 阅读 · 0 评论 -
【贪心+堆+链表】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 评论 -
【数学分析】BZOJ1041(HAOI2008)[圆上的整点]题解
题目概述求 {(x,y)|x2+y2=1,x∈Z,y∈Z}\{(x,y)|x^2+y^2=1,x\in Z,y\in Z\} 的元素个数。解题报告之前知道一个枚举勾股数的公式 (2ab)2+(a2−b2)2=(a2+b2)2(2ab)^2+(a^2-b^2)^2=(a^2+b^2)^2 ,但是这货并不能枚举完所有勾股数,WTF?不如膜拜FQY大佬!示例程序#include<cstdio>#incl原创 2017-09-22 20:26:43 · 606 阅读 · 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 · 780 阅读 · 0 评论 -
【可持久化并查集】BZOJ3674[可持久化并查集加强版]题解
题目概述有 nn 个点和 mm 个操作,操作有:合并两个点。回到第 kk 次操作。判断两个点是否联通。解题报告题目描述(题目名称)就是让你实现一个可持久化并查集。好像没有这种操作?由于我们会发现并查集就是个数组,所以我们可以用主席树实现可持久化数组。然后就好了……我就是在水博客……网上有些说不能用路径压缩,实际上是可以的,只不过空间有点大,看代码吧QAQ。示例程序#include<cstdi原创 2017-09-17 16:19:55 · 581 阅读 · 0 评论 -
【莫队 or 离线+树状数组】BZOJ1878(SDOI2009)[HH的项链]题解
题目概述给出一个序列 {An}\{A_n\} 和 mm 个询问,每个询问求区间 [L,R][L,R] 内不同数的个数。解题报告这道题显然可以用莫队乱搞,但是还有另一种做法。记录 nxt[i]nxt[i] 表示 >i>i 且 Ai=AjA_i=A_j 的第一个 jj ,那么当 i∈[L,R]i\in[L,R] 时, nxt[i]nxt[i] 就没有贡献了。我们还会发现,如果后面询问的左端点均 >i>i原创 2017-09-17 19:58:15 · 316 阅读 · 0 评论