BZOJ
文章平均质量分 70
chenxiaoran666
人要有梦想,不然和咸鱼有什么区别!
展开
-
【BZOJ1064 】[NOI2008] 假面舞会(图上DFS)
点此看题面大致题意:有k种面具(k是一个未知数且k≥3,每种面具可能有多个),已知戴第i种面具的人能看到第i+1种面具上的编号,特殊的,戴第k种面具的人能看到第1种面具上的编号,现在用x和y来表示戴着第x号的面具的人能看到第y号面具的编号,给你m组x和y(信息可能并不完整),请你求出至多和至少有多少个面具。这道题可以近似地看作一个有向图,但是有向图在这道题目中是极难操作的,因此我们可以用一...原创 2018-07-18 20:29:47 · 200 阅读 · 0 评论 -
【BZOJ1433】[ZJOI2009] 假期的宿舍(二分图匹配入门)
点此看题面大致题意:有nnn个学生,其中一部分是在校学生,一部分不是,而在校学生中一部分回家,一部分不回家,并且我们用一个01矩阵表示学生之间相互认识关系。已知每个学生只能睡自己认识的人的床(当然,他也可以睡自己的床),问是否有一个方案使得所有学生都有床睡。建图这道题是一道图论题。对于这种图论题,我们首先要考虑的便是建图。不难想到,我们可以将每个人与其能睡的床连一条边,即:...原创 2018-08-30 07:33:54 · 301 阅读 · 0 评论 -
【BZOJ2730】[HNOI2012] 矿场搭建(找割点)
点此看题面大致题意:一张无向图,要求你在去掉任意一个节点之后,剩余的每个节点都能到达一个救援出口,问至少需要几个救援出口。第一步:TarjanTarjanTarjan求割点首先,我们要跑一遍TarjanTarjanTarjan来求出割点。 Link TarjanTarjanTarjan求割点详见博客Tarjan在图论中的应用(二)——用Tarjan来求割点与割...原创 2018-09-08 12:59:56 · 249 阅读 · 0 评论 -
【BZOJ2243】[SDOI2011] 染色(树链剖分)
点此看题面大致题意: 有一棵nnn个节点的无根树和mmm个操作,且每个节点有一个颜色。操作有两种:一种是将两点树上路径之间所有点染成颜色ccc,另一种是询问两点树上路径之间颜色段的数量。树链剖分这道题的核心算法应该是树链剖分。LinkLinkLink树链剖分 详见博客 树链剖分学习笔记一个简单的小问题先让我们来思考一个简单的小问题。对于两个区间,我们该如何求出这两个区间合并...原创 2018-09-25 16:59:46 · 160 阅读 · 0 评论 -
【BZOJ4196】[NOI2015] 软件包管理器(树链剖分)
点此看题面大致题意: 有nnn个软件包,它们的依赖关系形成一棵树。现在,问你安装或卸载一个软件包,会影响多少个软件包的安装状态。树链剖分这道题应该是 树链剖分 算法比较入门的题目吧。Link树链剖分 详见博客树链剖分学习笔记对于安装操作我们对安装和卸载两种操作分别处理。首先,让我们来看一看安装操作应该如何实现。考虑到要安装一个软件包,就要把它所依赖的软件包,它的依赖所依赖...原创 2018-09-20 13:03:50 · 196 阅读 · 0 评论 -
【BZOJ1965】[AHOI2005] SHUFFLE 洗牌(数学题)
点此看题面大致题意: 有一叠扑克牌编号为1∼n1\sim n1∼n(nnn为偶数),每次洗牌将扑克牌平均分成上下两叠,取下面一叠的第一张作为新的一叠的第一张,然后取上面一叠的第一张作为新的一叠的第二张,再取下面一叠的第二张作为新的一叠的第三张……如此交替直到所有的牌取完。问mmm次洗牌后第lll张扑克牌的编号。数学题n,mn,mn,m这么大,比较显然是一道数学题。设当前位置为xxx,则不...原创 2018-09-20 13:22:44 · 380 阅读 · 0 评论 -
【BZOJ3106】[CQOI2013] 棋盘游戏(对抗搜索)
点此看题面大致题意: 在一张n∗nn*nn∗n的棋盘上有一枚黑棋子和一枚白棋子。白棋子先移动,然后是黑棋子。白棋子每次可以向上下左右四个方向中任一方向移动一步,黑棋子每次则可以向上下左右四个方向中任一方向移动一至二步。当某游戏者把自己的棋子移动到对方棋子所在的格子时,他就赢了。两个游戏者都很聪明,可以获胜时会尽快获胜,必输时会尽量拖延时间。试判断谁会赢,需要多少回合。对抗搜索这道题的做法应...原创 2018-09-24 14:05:44 · 1147 阅读 · 1 评论 -
【BZOJ1040】[ZJOI2008] 骑士(基环外向树DP)
点此看题面大致题意: 给你一片基环外向树森林,如果选定了一个点,就不能选择与其相邻的节点。求选中点的最大权值和。树形DPDPDP此题应该是**树形DPDPDP**的一个升级版:基环外向树DPDPDP。LinkLinkLink树形DPDPDP 详见博客 动态规划专题(二)——树形DP什么是基环外向树森林什么是 基环外向树?基环外向树,一般指一张 点数与边数相等 的联通图,此时...原创 2018-09-27 20:44:51 · 238 阅读 · 0 评论 -
【BZOJ1059】[ZJOI2007] 矩阵游戏(匈牙利算法)
点此看题面大致题意: 有一个N∗NN*NN∗N的010101矩阵,可以任意交换若干行和若干列,问是否有方案使得左上角到右下角的连线上全是111。题意转换首先,让我们来对题意进行一波转化。如果我们把xxx坐标看作一张二分图左半部分的点,把yyy坐标看作右半部分的点,那么题意就转化成了求这张图是否存在完美匹配。又由于每次只能交换行与列,因此每行存在的元素和每列存在的元素是固定不变的。因此...原创 2018-10-14 08:22:12 · 198 阅读 · 0 评论 -
【BZOJ1854】[SCOI2010] 游戏(匈牙利算法的应用)
点此看体面大致题意: 有nnn个物品,每个物品有两个属性且只能选择其中的一个,要求选择的物品属性值从111开始递增,问最多能选多少个。暴搜看到这题,我第一反应是暴搜… …好不容易过了样例,然后又调了半天,结果TLETLETLE了,只得了505050分… …匈牙利算法好吧,此题的正解是匈牙利算法,思想还是比较巧妙的。LinkLinkLink匈牙利算法 详见博客 二分图匹配:匈牙...原创 2018-10-07 20:31:52 · 192 阅读 · 0 评论 -
【BZOJ1088】[SCOI2005] 扫雷Mine(分类讨论)
点此看题面大致题意: 给你一个2∗n2*n2∗n的扫雷棋盘,现让你根据第二列的信息确定第一列有多少种摆法。扫雷性质听说这是一道动态规划+数学题。其实,根据扫雷游戏的某个性质,只要确定了第一个格子是否有雷,就可以确定整列雷的分布情况!因此,最多只可能有两种摆法。这样一来,只要对第一个格子是否有雷分类讨论即可,遇到合法的情况就将ansansans加$1。如何确定整列雷的分布情况我们...原创 2018-10-20 13:02:02 · 255 阅读 · 0 评论 -
【BZOJ1060】[ZJOI2007] 时态同步(树形DP)
点此看题面大致题意: 给你一棵带权树,每次使用道具可以将某条边的边权加111,问你至少需要使用多少次道具,才能使每个叶子节点到根节点的距离相等。贪心的思想首先,我们应该先有一个贪心的思想。不难发现,如果要将以xxx为根节点的子树内的所有边权加上valvalval,不如直接将xxx到faxfa_xfax的边权加上valvalval更优。这样一来就有一个基本思路:对于以xxx为根节点的子...原创 2018-10-21 12:33:23 · 155 阅读 · 0 评论 -
【BZOJ1101】[POI2007] Zap(莫比乌斯反演)
点此看题面大致题意: 求∑x=1N∑y=1M[gcd(x,y)==d]\sum_{x=1}^N\sum_{y=1}^M[gcd(x,y)==d]∑x=1N∑y=1M[gcd(x,y)==d]。一道类似的题目推荐先去做一下这道题:【洛谷2257】YY的GCD。再来看这题,就非常简单了。LinkLinkLink【洛谷2257】YY的GCD 的题解 详见博客 【洛谷2257】YY的G...原创 2018-10-25 20:06:21 · 192 阅读 · 0 评论 -
【BZOJ1972】[SDOI2010] 猪国杀(恶心的大模拟)
点此看题面大致题意: 让你模拟一个游戏猪国杀的过程。极大坑点对于这种模拟题,具体思路就不讲了,就说说有哪些坑点。题面有锅,反猪是FPFPFP。数据有锅,牌堆中的牌可能不够用,牌堆为空之后需一直抽最后一张牌。主猪杀死忠猪后猪哥连弩也要清除。无懈可击也可以用无懈可击抵消。使用决斗的猪可能死亡。无懈可击是从使用锦囊牌的猪开始轮流选择是否响应。使用完一张牌...原创 2018-10-23 20:28:41 · 466 阅读 · 0 评论 -
【BZOJ2648】SJY摆棋子(KD-Tree)
点此看题面大致题意: 在一个二维平面上现有NNN个棋子,有两种操作:增加一个棋子;查询离某个坐标最近的棋子离它的曼哈顿距离。KD−TreeKD-TreeKD−Tree这是一道KD−TreeKD-TreeKD−Tree的乱搞题。LinkLinkLinkKD−TreeKD-TreeKD−Tree 详见博客 浅谈KD-Tree如何询问在此题中,建树、插入、重构等过程其实与普通的KD...原创 2018-10-26 08:06:24 · 243 阅读 · 0 评论 -
【BZOJ3994】[SDOI2015] 约数个数和(莫比乌斯反演)
点此看题面大致题意: 设d(x)d(x)d(x)为xxx的约数个数,求∑i=1N∑j=1Md(i⋅j)\sum_{i=1}^N\sum_{j=1}^Md(i·j)∑i=1N∑j=1Md(i⋅j)。莫比乌斯反演这是一道莫比乌斯反演题。LinkLinkLink莫比乌斯反演 详见博客 初学莫比乌斯反演一个重要的性质首先我们要先了解d(i⋅j)d(i·j)d(i⋅j)这个函数的性...原创 2018-10-26 16:03:32 · 219 阅读 · 0 评论 -
【BZOJ1925】 [SDOI2010] 地精部落(带有一堆性质的动态规划)
点此看题面大致题意: 问你有多少长度为nnn的数列,它当中每个数字要么比旁边两个数字都小,要么比旁边两个数字都大。性质这题应该比较显然是一道动态规划题,但刚看到这题时我却无从下手。其实,了解了关于这种合法数列的几个性质,这题就不难了。它具有对称性。即如果a1a2...ana_1a_2...a_na1a2...an为合法数列,则anan−1...a1a_na_{n-1}......原创 2018-10-27 13:26:52 · 211 阅读 · 0 评论 -
【BZOJ2002】[HNOI2010] 弹飞绵羊(大力分块)
点此看题面大致题意:有nnn个弹力装置,当到达第iii个装置时,会被弹到第i+kii+kii+k_i个装置,若不存在第i+kii+kii+k_i个装置,就会被弹飞。有两种操作,一种操作是将kxkxk_x改为yyy,另一种操作是询问从xxx出发被弹几次后会被弹飞。考虑分块这题可以用分块来做。我们可以将弹力装置进行分块,对于每一块的弹力装置,可以先预处理出每个弹力元素弹出这个块...原创 2018-08-31 11:07:31 · 156 阅读 · 0 评论 -
【BZOJ1013】[JSOI2008] 球形空间产生器(高斯消元)
点此看题面 大致题意:给定一个nnn维球体上的n+1n+1n+1个点,请你求出这个球体的圆心的位置。列出方程这一看就是一道解方程题。 我们可以设这个球体的圆心的位置为(x1,x2,..xn)(x1,x2,..xn)(x_1,x_2,..x_n),并设每个点到圆心的距离为disdisdis。 借助题目中给出的公式,我们可以得到以下方程: \begin\end...原创 2018-08-26 12:09:53 · 211 阅读 · 0 评论 -
【BZOJ1036】[ZJOI2008] 树的统计Count(一道可怕的模板题:树剖+线段树)
点此看题面 这真的只是一道模板题:一个树链剖分套上一个线段树(令我窒息的组合)。 既然是模板题,那就直接上代码吧:#include<bits/stdc++.h>#define N 30000using namespace std;int n,ee=0,tot=0,a[N+5],lnk[N+5],fa[N+5],Size[N+5],De原创 2018-07-19 22:04:37 · 257 阅读 · 0 评论 -
【BZOJ4033】[HAOI2015] 树上染色(树形DP)
点此看题面 大致题意:给你一棵点数为N的带权树,要你在这棵树中选择K个点染成黑色,并将其他的N-K个点染成白色。要求你求出黑点两两之间的距离加上白点两两之间距离的和的最大值。 这道题应该是一道比较显然的树形DP,我们可以用f[x][i]来表示当前节点为x时有i个黑色节点时能取得的最大值。则转移方程应为(伪代码)f[x][i]=max(f[x][i],f[x][i-j]+f[x的一个子节点]...原创 2018-07-19 22:35:01 · 250 阅读 · 0 评论 -
【BZOJ1057】[ZJOI2007] 棋盘制作(单调栈的运用)
点此看题面 大致题意:给你一个N*M的01矩阵,要求你分别求出最大的01相间的正方形和矩形(矩形也可以是正方形),并输出其面积。 这题第一眼看去没什么思路,仔细想想,能发现这道题其实是一道单调栈的运用题。 我们可以先对矩阵上的每一个元素进行预处理,求出以其为底的最长的01柱。 然后对矩形(正方形)的下界进行枚举,即枚举每一行作为矩形(正方形)的下边。 此时,我们发现,只要使连续的01柱连...原创 2018-07-20 19:49:09 · 208 阅读 · 0 评论 -
【BZOJ1029】[JSOI2007] 建筑抢修(堆优化贪心)
点此看题面 大致题意:有N个受到严重损伤的建筑,对于每个建筑,修好它需要T1秒,且必须在T2秒之前修完(T1与T2不是固定值),问你最多能修好几个建筑。 一看到这题,就能想到一个贪心的做法。 但是,裸贪心显然是不能过的,如果加上一个堆优化,就能够水过此题。 我们可以把修好每个建筑所需的时间放入大根堆中存储。对于每一个建筑,若能在规定时间内修好,则将ans加1,否则比较修好它所需的时间与堆顶...原创 2018-07-20 21:46:43 · 203 阅读 · 0 评论 -
【BZOJ1076】[SCOI2008] 奖励关(状压DP)
点此看题面 大致题意:总共有nnn个宝物和kkk个回合,每个回合系统将随机抛出一个宝物(抛出每个宝物的概率皆为1/n1/n1/n),吃掉一个宝物可以获得一定的积分(积分可能为负),而吃掉某个宝物有一定的前提,即先吃掉若干种宝物每个至少一次,才能吃掉该宝物。请你求出在最优策略的情况下的最优得分。 由于这道题的数据范围很小,我们可以考虑状压DP,状压DP就是用一个数二进制下的每一位来存储一个信息,...原创 2018-07-22 11:26:15 · 194 阅读 · 0 评论 -
【BZOJ1087】[SCOI2005] 互不侵犯King(状压DP)
点此看题面 大致题意:在N×NN×NN×N的棋盘里面放KKK个国王,使他们互不攻击,共有多少种摆放方案(国王能攻击到它周围的8个格子)。 一看到这道题我就想到了经典的八皇后问题,但是,这道题其实可以用状压DP来做。 我们可以发现,影响该行国王摆放方法的只有上一行国王的摆放方式,因此,对于第iii行,我们只需要知道第i−1i−1i-1行的国王的摆放方式即可。所以,我们可以用f[i][j]f[i...原创 2018-07-22 11:54:36 · 275 阅读 · 0 评论 -
【BZOJ3209】花神的数论题(数位DP)
点此看题面 大致题意:设sum(i)sum(i)sum(i)表示iii二进制中1的个数,请求出∏ni=1sum(i)∏i=1nsum(i)\prod_{i=1}^n sum(i)。 很显然,这是一道数位DP题。原创 2018-07-24 17:22:41 · 448 阅读 · 0 评论 -
【BZOJ1833】[ZJOI2010] count 数字计数(数位DP)
点此看题面原创 2018-07-27 17:38:50 · 478 阅读 · 0 评论 -
【BZOJ2006】[NOI2010] 超级钢琴(堆+RMQ)
点此看题面 大致题意:要你求出区间和前kkk大的区间的区间和之和,其中每个区间的大小在LLL与RRR之间。 这道题目,我们可以先对1∼n1∼n1\sim n中的每一个iii求出区间[i+L−1,min(i+R−1,n)][i+L−1,min(i+R−1,n)][i+L-1,min(i+R-1,n)]中的一个位置sss,使得对于任意一个j∈[i+L−1,min(i+R−1,n)]j∈[i+L−1...原创 2018-08-03 20:06:04 · 372 阅读 · 0 评论 -
【BZOJ1857】传送带(分治经典:三分套三分)
点此看题面 大致题意:一个二维平面上有两条传送带ABABAB和CDCDCD,ABABAB传送带的移动速度为PPP,CDCDCD传送带的移动速度为QQQ,步行速度为RRR,问你从AAA点到DDD点所需的最短时间。 很显然,最优策略一定是在ABABAB传送带上移动到某一个地方,然后步行到CDCDCD传送带的某一个地方,最后直接在CDCDCD传送带上移动到DDD。 不难发现,这是两个单谷函数,因此...原创 2018-08-05 19:49:17 · 1020 阅读 · 0 评论 -
【BZOJ1045】糖果传递(基于贪心的数学题)
点此看题面 大致题意:有nnn个小朋友坐成一圈,每人有a[i]a[i]a[i]个糖果。每人只能给左右两人传递糖果,传递一个糖果代价为1,求使所有人获得均等糖果的最小代价。 这题其实是一道带有浓厚数学色彩的贪心题。 我们可以先用sumsumsum来统计a[i]a[i]a[i]之和,然后将sumsumsum除以nnn,从而求出最后每个小朋友应该拥有的糖果的个数。 我们可以用s[i]s[i]s[...原创 2018-08-05 20:14:22 · 1206 阅读 · 5 评论 -
【BZOJ4327】[JSOI2012] 玄武密码(AC自动机的小应用)
点此看题面 大致题意:给你一个长度为lenlenlen的文本串和nnn个模式串,让你求出每一个模式串的前缀与文本串的最大匹配串长度(其中模式串和文本串都只由字符’E’,’S’,’W’,’N’组成)。 对于每一个模式串,我们可以记录它的每一个前缀在TrieTrieTrie上所对应的节点的位置。...原创 2018-08-20 19:15:18 · 314 阅读 · 0 评论 -
【BZOJ3940】[USACO2015 Feb] Censoring (AC自动机的小应用)
点此看题面原创 2018-08-20 19:28:38 · 257 阅读 · 0 评论 -
【BZOJ3172】[TJOI2013] 单词(AC自动机的小应用)
点此看题面 大致题意:给你NNN个单词,请你求出每一个单词在这NNN个单词中出现的次数。 这是一道ACACAC自动机的简单运用题。 Link ACACAC自动机详见博客字符串匹配(三)——初学AC自动机这道题应该是洛谷上一道板子题的升级版。 Link 【洛谷3796】【模板】AC自动机(加强版) 的题解详见博客【洛谷3796】【模板】AC自动机(加强版...原创 2018-08-20 19:42:33 · 247 阅读 · 0 评论 -
【BZOJ1030】[JSOI2007] 文本生成器(AC自动机上跑DP)
点此看题面 大致题意:给你NNN个字符串(只含大写字母),要你求出有多少个由MMM个大写字母构成的字符串含有这NNN个字符串中的至少一个。 看到题目,应该比较容易想到用ACACAC自动机去做。 Link ACACAC自动机详见博客字符串匹配(三)——初学AC自动机但是,即使用了ACACAC自动机,这题直接求还是很麻烦,所以我们需要将题意先转化一下。 考虑对于一个由MM...原创 2018-08-21 18:38:49 · 238 阅读 · 0 评论 -
【BZOJ1216】[HNOI2003] 操作系统(堆+模拟)
点此看题面 大致题意:有nnn个任务,每个任务有4个属性:编号、到达时间、执行时间和优先级。每个单位时间,会执行一个优先级最高(若有多个优先级最高的,就先执行到达时间较早的)的任务,请你按完成的顺序输出每个任务的编号以及相应的完成时间。...原创 2018-08-21 19:53:40 · 288 阅读 · 0 评论 -
【BZOJ3123】[SDOI2013] 森林(启发式合并主席树)
点此看题面大致题意: 给你一片森林,有两种操作:询问两点之间的第kkk小点权和在两棵树之间连一条边。前置技能:树上主席树做这道题目,我们首先要会树上主席树。关于树上主席树,这有一道很好的例题:【洛谷2633】Count on a tree(只包含此题的询问操作)。LinkLinkLink【洛谷2633】Count on a tree 的题解 详见博客 【洛谷2633】Count o...原创 2018-10-27 15:25:26 · 282 阅读 · 0 评论