BZOJ题解
文章平均质量分 57
「已注销」
这个作者很懒,什么都没留下…
展开
-
BZOJ 1008: [HNOI2008]越狱 题解
BZOJ 1008的题解水数量的,可以考虑不看,以免浪费时间Orz MatchpersonOrz zzk神犇原创 2017-06-30 10:07:30 · 350 阅读 · 0 评论 -
[Trie树]BZOJ 1590 [Usaco2008 Dec]Secret Message 秘密信息 题解
[Trie树]BZOJ 1590 [Usaco2008 Dec]Secret Message 秘密信息 题解题目大意给出nnn个01字符串a和mmm个字符串b,求对于每个字符串b,有多少个字符串aaa满足lcp(a,b)=min(a,b)lcp(a,b)=min(a,b)lcp(a,b)=min(a,b)(lcp为最长公共前缀,min取长度较短的那个字符串),n,m≤105n,m≤10...原创 2018-08-28 14:52:06 · 314 阅读 · 0 评论 -
[KMP]UOJ#5. 【NOI2014】动物园 题解
题目大意多组数据,每次给出一个长度为nnn的字符串,求它的∏ni=1(num[i]+1) Mod 1000000007∏i=1n(num[i]+1) Mod 1000000007\prod_{i=1}^n(num[i]+1)\ Mod\ 1000000007num[i]num[i]num[i]的定义为:对于字符串长度为i的前缀子串中,前缀等于后缀且前...原创 2018-08-24 11:09:16 · 1019 阅读 · 0 评论 -
[KMP]BZOJ 3620 似乎在梦中见过的样子 题解
题目大意给出一个字符串,求它有多少个子串满足可以拆成三个子串A+B+AA+B+AA+B+A,其中|A|≥k,|B|≥1|A|≥k,|B|≥1|A|\ge k,|B|\ge1解题报告O(n2)O(n2)O(n^2)过,真是……前缀和后缀相同,KMP……那么这道题枚举左端点L,对后缀进行失配处理,建一棵fail数(把每个点向它的失配点连边,可以构造出一棵树),那么如果子串[L,...原创 2018-08-24 16:15:19 · 526 阅读 · 0 评论 -
[Manacher]BZOJ 2160 拉拉队排练 题解
题目大意给出一个长度为n的字符串,求它前k长的回文子串长度乘积。n≤106,k≤1012n≤106,k≤1012n \le10^6,k\le10^{12}解题报告某神犇曾经说过:“ 水水博客有利身体健康。” 所以这题就是Manacher裸题,因为如果[L,R]是回文子串,那么[L+1,R-1]也是回文子串。所以前缀和统计就行了。#include<cstdio>#...原创 2018-08-24 22:18:22 · 167 阅读 · 0 评论 -
[Trie+贪心]BZOJ 4567 [Scoi2016]背单词 题解
题目大意给出nnn个字符串,要求给这nnn个字符串编号1~n,使其代价和最小。 对第iii个字符串编号为viviv_i,代价的计算方式如下:1.如果存在字符串jjj满足jjj是iii的后缀,且vi<vjvi<vjv_iiii的代价为n2n2n^2 2.如果字符串iii没有对应的后缀,那么代价为viviv_i 3.如果存在字符串jjj满足jjj是iii的后缀,而且没有vi&...原创 2018-08-25 16:54:36 · 223 阅读 · 0 评论 -
[AC自动机+DP]BZOJ1030 (JSOI2007)文本生成器 题解
题目大意给出n个模板串,如果在一个文本中至少存在一个模板串,那么这个文本就是合法的,求长度为m的文本的合法方案数模10007后的结果。解题报告AC自动机+DP的经(mo)典(ban)题。用模板串建AC自动机,f[i][j]f[i][j]f[i][j]表示文本串长度为iii,在AC自动机上匹配到节点jjj的方案数,注意别走到单词节点,而且如果fail[x]fail[x]fail[x]...原创 2018-09-07 21:42:45 · 205 阅读 · 0 评论 -
[AC自动机]BZOJ4327 JSOI2012 玄武密码 题解
题目大意给出nnn个文本串|s||s||s|和1个模板串|S||S||S|,问对于每个文本串能与模板串匹配的最长前缀长度。∑|s|≤107,|S|≤107,n≤105∑|s|≤107,|S|≤107,n≤105\sum|s|\le10^7,|S|\le10^7,n\le10^5解题报告对nnn个文本串建立AC自动机,然后将模板串放到AC自动机上匹配,对于匹配到的点就沿着它的fa...原创 2018-09-06 19:15:51 · 281 阅读 · 0 评论 -
[二分+DP]BZOJ1181 [CROATIAN2009]IZBROI选举 题解
题目大意在地区选举中有nnn个政党争夺mmm个议会席位,总共有VVV张票数,其中已经有一些票已经投出,议会席位的分配方式如下:设viv_ivi为第iii个政党的票数,第iii个政党有SiS_iSi个席位,初始所有政党都没有席位,先把投票数小于5%5\%5%的政党剔除,每次把席位给vi/(Si+1)v_i/(S_i+1)vi/(Si+1)最大的政党,问每个政党能得到的席位数的最大和最小值。...原创 2018-10-03 15:27:26 · 353 阅读 · 0 评论 -
[莫队]BZOJ 4542 [Hnoi2016]大数 题解
题目大意给出一个长度为NNN的数字串和一个素数ppp,MMM组数据求一段子串内为ppp倍数的子串个数。解题分析先假设ppp不为2和5,那么对于一个ppp的倍数xxx和一个位数为LLL的数字yyy,那么有x mod p=0x\ mod\ p=0x mod p=0y mod p=zy\ mod\ p=zy mod ...原创 2018-10-07 20:28:04 · 184 阅读 · 0 评论 -
[欧拉函数]BZOJ 2818 Gcd 题解
题目大意见题面。解题分析一开始我还以为很麻烦,然后才发现是数论水题。思想很简单,之前用过的套路gcd(i,j)=p =&gt;gcd(i/p,j/p)=1gcd(i,j)=p\ =&gt; gcd(i/p,j/p)=1gcd(i,j)=p =>gcd(i/p,j/p)=1所以就是枚举素数p,然后就是求[1,n/p]中互质的数对个数,不难发现就是...原创 2018-10-14 20:34:12 · 236 阅读 · 0 评论 -
[Manacher+贪心]BZOJ 3790 神奇项链 题解
[Manacher+贪心]BZOJ 3790 神奇项链 题解本题有权限题目描述Description母亲节就要到了,小 H 准备送给她一个特殊的项链。这个项链可以看作一个用小写字母组成的字符串,每个小写字母表示一种颜色。为了制作这个项链,小 H 购买了两个机器。第一个机器可以生成所有形式的回文串,第二个机器可以把两个回文串连接起来,而且第二个机器还有一个特殊的性质:假如一个字符串的后缀和...原创 2018-10-08 20:59:05 · 468 阅读 · 0 评论 -
[KMP]BZOJ 4974 [Lydsy1708月赛]字符串大师 题解
题目大意给出一个长度为n的字符串,求这个字符串的所有前缀的最小循环节,现在反过来,给出所有前缀的最小循环节,求字典序最小的字符串。(N≤100000)(N\le100000)(N≤100000)解题分析最小循环节=i-nxt[i]那么可以求出nxt数组。求出来了又如何?如果Nxt[i]已知,注意nxt[i]的定义是s[1…nxt[i]]=s[i-nxt[i]+1…n],那么明显s[i]...原创 2018-10-18 19:05:45 · 266 阅读 · 0 评论 -
[最短路+拓扑]BZOJ 2750 [HAOI2012]Road
题目大意给出一个有向图,求有向图上每条边被多少不同的最短路通过。n≤1500,e≤5000n\le1500,e\le5000n≤1500,e≤5000解题分析签到题?反正并不难,就对于每个点先求最短路,然后取出所有dst[x]+w[j]==dsd[son[j]]dst[x]+w[j]==dsd[son[j]]dst[x]+w[j]==dsd[son[j]]对跑出来的图进行拓扑排序,正着做一...原创 2018-10-25 20:42:17 · 224 阅读 · 0 评论 -
[DP]BZOJ 1939 [Croatian2010] Zuma 题解
[DP]BZOJ 1939 [Croatian2010] Zuma 题解题目描述祖玛游戏是这样的:有一列nnn个有颜色的珠子,如果触碰连续KKK个同色的珠子,那么它们就会消失,其余的珠子按照原来顺序接在一起。现在你每次可以发射任意颜色的珠子,发射在任意位置(开头、结尾以及任意两个之间)。注意,如果有连续kkk个或更多同色的珠子,你可以不立即消去他们,详见样例 3。问最少需要几发可以消掉所...原创 2018-10-23 20:20:35 · 323 阅读 · 0 评论 -
[DFS序+树状数组+nim游戏]BZOJ 2819 nim 题解
[DFS序+树状数组+nim游戏]BZOJ 2819 Nim 题解题目大意给出一棵带点权的树,多组询问树上一条链上的所有点的点权作为nim游戏的初始石子数,问是否存在必胜策略,带修改。N,Q≤500000N,Q\le500000N,Q≤500000解题分析如果看过我那篇上了两次又删了两次的2017暑假集训日记的话~~(虽然我觉得应该没人记得82695518)~~,应该知道我对于这道题的无...原创 2018-10-24 20:59:54 · 266 阅读 · 0 评论 -
【线性模方程】BZOJ 1407 [Noi2002]Savage 题解
题目大意nnn个人在mmm个点的环上,每个人初始在点cicic_i,能活LiLiL_i秒,每秒会向后走pipip_i步,求出最小的mmm使得任意两个人在有生之年都不会在一个点上相遇。解题分析转化一下这题,如果两个人i,ji,ji,j在第xxx天相遇了,说明什么?ci+x∗pi≡cj+x∗pj(Mod m)ci+x∗pi≡cj+x∗pj(Mod m)c_i+x...原创 2018-08-02 23:38:47 · 137 阅读 · 0 评论 -
【最大流】BZOJ 1066 [SCOI2007]蜥蜴 题解
(传送门)题目大意已知n只跳跃距离为D的蜥蜴被困在石柱林中,它们可以通过在石柱上跳跃来逃脱,但每个石柱都有一个通过的限制,问最少有多少只蜥蜴最终困在石柱林中。解题分析ans可以转换成总蜥蜴数-最大逃脱蜥蜴数。每个石柱明显说有通过的限制,那么网络流建模,每个石柱拆点,流量限制为通过限制,建立超级源和超级汇,等等… 总之不错的网络流建模题。解题代码#incl...原创 2018-07-27 08:29:16 · 169 阅读 · 0 评论 -
BZOJ 1012: [JSOI2008]最大数maxnumber 题解
题目梗概(直接copy)(传送门) 现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。 2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾原创 2017-06-29 20:28:03 · 299 阅读 · 0 评论 -
1088: [SCOI2005]扫雷Mine 题解
(传送门) 题意很简单,不重复了。 一开始把这当成递推了,结果各种细节被虐,最后还华丽丽的WA了,后来手贱点了题解,MD,我真的就是一个菜鸡。 其实这么想,首先第一个格子也就0和1两种状态,然后第二个格子,由于右边一列第一个格子给出的数就是第一个格子和第二个格子的地雷和,所以也能推出来,第三个由右边第二个,又推出来,最后推呀推呀推呀推,推到最后,注意这个序列有可能是不合法的,所以我们需要推到N原创 2017-07-03 16:28:06 · 321 阅读 · 0 评论 -
BZOJ 2084: [Poi2010]Antisymmetry 题解
写完睡觉……此题有权限……题目大意给出一个0和1的串,要求求出所有特殊子串,一个特殊子串满足这个子串取反并回文后的串与原串相同。解题分析貌似就是Manacher,对字符相等进行一下变换,然后,就成了求回文子串个数,那么对于一个字符串中的字母,先用Manacher求出p数组,那么我们知道其最长回文子串的长度为p[i]-1,而且如果这么长的是回文的,那么两边同时缩短一点也是回文的,也就是说以i为中心的回原创 2017-07-30 23:25:23 · 261 阅读 · 0 评论 -
【分块】BZOJ 1257 [CQOI2007]余数之和sum题解
几百年没发博客了……第一次写分块……nanana……原创 2017-08-22 18:51:59 · 298 阅读 · 0 评论 -
BZOJ 2732: [HNOI2012]射箭 题解
花了很长时间终于AC,此题细节超多,写题有风险,入坑需谨慎……原创 2017-07-31 20:50:03 · 638 阅读 · 1 评论 -
BZOJ 2829: 信用卡凸包 题解
这道题BZOJ有权限,用学校的号A的,所以没有传送门,直接上题目描述~(我才不会说在vijos上有也有这道题,因为我没测试过,nanana)题目描述 输入样例 2 6.0 2.0 0.0 0.0 0.0 0.0 2.0 -2.0 1.5707963268输出样例 21.66提示 本样例中的2张信用卡的轮廓在上图中用实线标出,如果视1.5707963268为Pi/原创 2017-07-26 14:51:18 · 313 阅读 · 0 评论 -
BZOJ 1007: [HNOI2008]水平可见直线 题解
(传送门) 其实这道题的求法和凸包类似,首先如果有三条直线i,j,t;并存在 那么如果出现i与j的交点在i与t的交点的左边,那么说明j已经被i和t所覆盖了,用单调栈,把j弹出栈,周而复始。然后……好像也没什么可说的。原创 2017-07-13 19:14:28 · 247 阅读 · 0 评论 -
[贪心]BZOJ 3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者
你没看错,这道题就是水博客的。本题有权限……题目大意题目要求给出n条线段(Li,Ri),要求选出最多的线段,保证任意两条线段不会相交。题目分析贪心的思路,假设目前求出一个值lst,表示最后一条线段的R值,然后对于一条新入的线段,如果lst<=L,说明可以容下,那就把这道线段加入答案中,更新lst,但如果不行,那怎么办?仔细思考后发现依旧贪心思路,把当前答案中最后一条线段剔除,然后加入这条线段,这样可原创 2017-08-30 21:19:36 · 287 阅读 · 0 评论 -
[最大流]BZOJ 1711: [Usaco2007 Open]Dining吃饭 题解
本题有权限……题目描述农夫JOHN为牛们做了很好的食品,但是牛吃饭很挑食. 每一头牛只喜欢吃一些食品和饮料而别的一概不吃.虽然他不一定能把所有牛喂饱,他还是想让尽可能多的牛吃到他们喜欢的食品和饮料. 农夫JOHN做了F (1 <= F <= 100) 种食品并准备了D (1 <= D <= 100) 种饮料. 他的N (1 <= N <= 100)头牛都以决定了是否愿意吃某种食物和喝某种饮料. 农夫原创 2017-09-27 19:53:50 · 323 阅读 · 0 评论 -
[树状数组(离线)]BZOJ 1878: [SDOI2009]HH的项链 题解
(传送门)题目大意给出一个序列,求对于给定询问的区间中有多少个不同的数。解题分析离线求法,假设目前枚举的答案左端点为L(L从左到右枚举),那么对于一个数,在序列中会出现多次,但是我们只需要考虑最左边的一个定义数组nxt,nxt[i]表示在i之后第一个与a[i]相同的数的位置。 当L往后推时,我们要始终维护:从L开始,各种数字第一个出现的位置记为+1,其他的位置都为0。 当L这个位置即将退出时原创 2017-09-06 21:38:04 · 262 阅读 · 0 评论 -
[二分+二分图匹配]BZOJ 4443: [Scoi2015]小凸玩矩阵 题解
(传送门)题目大意题目说的很清楚,不说了。解题分析学过二分图匹配的一定做过一道题,要求每行每列只能选一个问最多能拿多少个,这个题就是行向列连边然后二分图匹配就行。那么这道题是多了一个K大值最小,也可以看做n-K+1大值最小,那么最大最小就是二分答案,那么验证,就需要保证所有低于mid的是合法可以连边,如果最后可以选出n-K+1个数小于mid,那么因为n<=m,所以剩下来的可以任意选都合法,也就是可以原创 2017-09-29 11:38:19 · 246 阅读 · 0 评论 -
[最大流] BZOJ 1458: 士兵占领 题解
本题有权限……原创 2017-10-04 16:45:41 · 270 阅读 · 0 评论 -
[斜率DP优化]BZOJ 1597: [Usaco2008 Mar]土地购买 题解
(传送门)题目描述给出n块土地,第i块长度为xix_i,宽度为yiy_i,一次可以购买任意数目土地,每次购买的价格为所有这次购买的土地中max{xi}∗max{yi}max\{x_i\}*max\{y_i\},求购买全部土地最少需要多少钱。解题分析首先对于一块土地i,如果存在另一块土地j,有xj>xi,yj>yix_j>x_i,y_j>y_i,那么说明i不可能对答案会有影响,所以可以筛去i,所以可以原创 2017-10-20 11:46:10 · 241 阅读 · 0 评论 -
[斜率DP优化]BZOJ 1911: [Apio2010]特别行动队 题解
(传送门)题目大意给出一个有n个数的数组aia_i,要求将a分割成若干个区间,每个区间的价值是 令这个区间所有数的和为x,则该区间价值为A*x*x+B*x+C一个分割方案ans=所有分割的区间的价值和,求最大的ansans解题分析明显的线性DP,直接斜率优化。转移方程 f[i]=max{f[j]+A∗(sum[i]−sum[j−1])2+B∗(sum[i]−sum[j−1])+C}f[i]=原创 2017-10-20 15:03:07 · 264 阅读 · 0 评论 -
【贪心+堆+ST算法】BZOJ 4458: GTY的OJ 题解
写在前面失踪人口在8个月的文化课狂补和4天的适(tui)应(fei)后,应该算正式回归了。(目前为半失踪人口)本来想换个Blog当作重新开始,但反正都退役了,就不瞎折腾了…BZOJ 4458: GTY的OJhttps://www.lydsy.com/JudgeOnline/problem.php?id=4458题目概述给出一棵带有点权的nnn个节点的树,在树上选出m...原创 2018-07-09 15:38:34 · 319 阅读 · 0 评论 -
[数位DP]BZOJ 3131 [Sdoi2013]淘金 题解
题目大意有一个大小为N∗NN*NN∗N的矩阵,一开始矩阵内每一个数都是1,每一次变换后坐标为(i,j)(i,j)(i,j)内的数会累加到(f(i),f(j))(f(i),f(j))(f(i),f(j)),其中f(x)f(x)f(x)为各位数的累积(如果f(x)=0f(x)=0f(x)=0,那么直接消失)。问一次变换后矩阵内前KKK大的数之和。N≤1012,K≤106N\le10^{12},K\...原创 2018-11-02 09:17:05 · 208 阅读 · 0 评论