08 2018 档案

摘要:传送门 这还是很显然是一道二分图匹配的题……(看数据范围辣么小) 其实这题就是建图稍微复杂一点。对于每个学生,我们把他们的床连到汇点上,然后对于每个没回家的和外来的人,我们把他们连到源点上,之后在人和床之间就按给定的关系连上就可以。注意自己和自己的床要连一条边。 处理过程比较繁琐……我们可以选择用1 阅读全文
posted @ 2018-08-30 22:59 CaptainLi 阅读(166) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题很明显是一道并查集 + 维护并查集中元素到根结点之间距离的题。 具体的维护方法也很简单。fa数组表示每个点的父亲,dis数组表示当前节点到父亲的距离,sum数组表示当前节点所在集合中元素个数。预处理的时候把每个点的dis设为0,sum设为1. 之后对于每次战舰合并操作,将其中一个战舰所 阅读全文
posted @ 2018-08-30 22:32 CaptainLi 阅读(176) 评论(0) 推荐(0) 编辑
摘要:传送门1(简单版) 传送门2(增强版) AC自动机……(至于自动机是啥我也看不懂……请自行百度) AC自动机简单来说可以被看成是trie树和KMP算法的结合体,它的用途主要是多模匹配,就是给你一个文本串和多个模式串,询问你诸如:有多少个模式串在文本串中出现过,或是什么模式串在文本串中出现了多少次之类 阅读全文
posted @ 2018-08-29 23:40 CaptainLi 阅读(251) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题明显是二分图匹配……(因为我至今不会写匈牙利我就跑了遍dinic) 非常的明显,自己设定一个原点和汇点。把原点向所有的外籍飞行员连容量为1的边,所有的英国飞行员向汇点连容量为1的边,中间的边按题目描述,给你一条你就建一条容量为1的边。 之后直接跑网络流。至于最后怎么判断哪几个飞行员是配 阅读全文
posted @ 2018-08-29 22:39 CaptainLi 阅读(730) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题看题目描述……联通具有传递性?很容易想到是并查集。 不过按照题目的描述似乎很麻烦……这样每次摧毁会令人很难受。不过这并不是问题,我们把它倒过来,从最终被摧毁的状态开始,直接往回加边,每次用并查集维护即可。 还有就是如何计算联通块数?一开始我智障般的想了好久……后来被mrclr一语道破: 阅读全文
posted @ 2018-08-29 22:30 CaptainLi 阅读(142) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题看数据范围<=9,很容易想到是状压DP。 根据各位dalao的讲述,状压DP中经常把每一个行的情况都压缩起来,之后进行DP。那么这样的话想起DP的状态就比较简单,dp[i][j][s]表示枚举到第i行,第i行的状态为j,算上当前行一共放了s个国王一共有多少种情况。其中j是一个二进制串, 阅读全文
posted @ 2018-08-29 22:24 CaptainLi 阅读(152) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题该怎么做呢……我自己只能想出来O(n^3)的暴力模拟……不过并不行。 来看一下正解吧……将给定的式子变一下形,得到A*height + B*speed - C <= A*minh+B*mins. 这样的话,把所有的运动员按照A*height + B*speed - C从小到大排序,这样 阅读全文
posted @ 2018-08-27 23:03 CaptainLi 阅读(99) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题很明显是DP。不过一开始我错误的以为是区间DP……但是并不是这样。因为区间DP它需要满足区间的情况是确定的,而这道题并不是确定的情况,所以不是区间DP。 重新考虑,设dp[i][j][p][q]表示当前选取了i个男孩,j个女孩,在所有的区间中男孩最多比女孩多p个,女孩最多比男孩多q个。 阅读全文
posted @ 2018-08-27 22:13 CaptainLi 阅读(107) 评论(0) 推荐(0) 编辑
摘要:传送门 普及组的题目……很水。 原来写了一个模拟不过好像状态考虑的不全得了80,这次我们考虑一下dp做法。 守卫者有两种移动的方法,一种是闪现,一种是跑,我们可以把闪现和跑分开处理。 首先只处理闪现的情况,这个时候要用贪心,能闪就闪,否则原地回蓝即可。 之后在处理跑步的情况,这种情况就要用dp了,方 阅读全文
posted @ 2018-08-27 20:48 CaptainLi 阅读(324) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题和传纸条在某些方面上非常的相似。不过这道题因为我们要求回文的路径,所以我们可以从中间一条大对角线出发去向两边同时进行DP。 这里就有了些小小的问题。在传纸条中,两个路径一定是同时处在同一个对角线上的,不过这次是双向DP,不同时在同一个对角线上,那应该怎么办呢? 我们可以选择找出其中的相 阅读全文
posted @ 2018-08-27 20:41 CaptainLi 阅读(201) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题有好多好多种做法呀……先说一下最暴力的,O(n^4的做法) 我们相当于要找两条从左上到右下的路,使路上的数字和最大。所以其实路径从哪里开始走并不重要,我们就直接假设全部是从左上出发的好啦。设dp[i][j][p][q]表示第一条路枚举到点(i,j),第二条路枚举到点(p,q)时,当前能 阅读全文
posted @ 2018-08-27 20:10 CaptainLi 阅读(370) 评论(0) 推荐(1) 编辑
摘要:传送门 这道题竟然可以使用全排列暴力模拟水过…… 不过我们还是说一下正解。既然数据范围这么小,所以我们考虑状压DP。 用dp[i][j]表示状态为i时,当前选取的所有数的排列,其对d取模后结果为j有多少种情况。其中i是一个二进制数字串,每一个二进制位对应原数组中的数字有没有被选中。 简单的解释一下, 阅读全文
posted @ 2018-08-26 23:55 CaptainLi 阅读(242) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题才应该是标准的区间DP! 其实这个题用一种神奇的算法瞎写就能得80……一会可以附上参考代码……如果有神犇愿意帮助debug不胜感激…… 考虑区间DP。用dp[i][j]表示将区间[i,j]涂好需要使用的最少的颜色种数。 既然如此,dp方程就很显然,因为毕竟区间dp的思想就是先算小区间再 阅读全文
posted @ 2018-08-26 22:19 CaptainLi 阅读(231) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题第一眼看上去可能让人以为是贪心……不过贪心并不行,因为每次的操作是有2的幂次方的权值的。这样的话直接每次贪心最小的就目光短浅。所以那我们自然想到了DP。 据说这是一道很正常的区间DP? 区间DP的基本思想,就是先处理出小区间的最优解,再由多个小区间合并成一个大区间。 不过这道题的想法略 阅读全文
posted @ 2018-08-26 22:02 CaptainLi 阅读(308) 评论(0) 推荐(0) 编辑
摘要:传送门 好像是一道非常神仙的题…… 本题中具体的概念可以参见CDQ大神的论文:弦图与区间图 我们直接来说吧。 从这道题中的描述可以看出,由所有人向其认识的人连一条边,构成的是一张标准的弦图。而题目要求我们求出这张弦图的最小染色数。 有一个非常重要的定理:对于一张弦图,团数 = 色数(这个证明很难懂不 阅读全文
posted @ 2018-08-25 16:18 CaptainLi 阅读(150) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题的题目描述好像很奇怪……不过想了一下,应该要求的是每个做出来的箱子是不能有空的。(否则的话这题也太简单了) 朴素的DP方程很好想,设sum[i]为前i个物品的长度之和,方程就是dp[i] = min(dp[j] + (sum[i] - sum[j] + i - j - 1) ^ 2) 阅读全文
posted @ 2018-08-25 15:56 CaptainLi 阅读(150) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题题意描述很清楚,不过我自己做的时候确实是一头雾水……又看了题解,发现要用到一个新知识,叫purfer序列。 我们来简单说一下什么是purfer序列。它可以被看作一种树的表现形式。一棵含有n个节点的树可以用一个长度为n-2的purfer序列表示,而其中每一个树都是1~n之间的一个数。 每 阅读全文
posted @ 2018-08-24 07:00 CaptainLi 阅读(243) 评论(0) 推荐(0) 编辑
摘要:传送门 应该是HNOI2008年最简单的一道题了吧……简单的组合数题,不过要换个思路。 我们直接考虑发生越狱的情况似乎有点复杂,那我们换个思路,考虑不发生越狱的情况,也就是两个有相同宗教的人不会坐在一起。 第一个人有m种宗教可以信仰,那么第2个就只有m-1种了,不过我们发现,之后,第3个人其实还可以 阅读全文
posted @ 2018-08-23 18:39 CaptainLi 阅读(144) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题目的题意描述,通俗一点说就是这样:有一个长度为n的数字串(其中每一位都可以是0到9之间任意一个数字),给定一个长度为m的模式串,求有多少种情况,使得此模式串不为数字串的任意一个子串。结果对给定的模数取模。 我们为了阅读方便,将数字串称为P串,给定的模式串称为T串。 一开始有这么个暴力想 阅读全文
posted @ 2018-08-23 18:15 CaptainLi 阅读(219) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题我自己想了想……不过并没有想出什么很好的方法。 我们简单一点考虑,问题可以转化成求所有在最上面的直线的那个集合中有哪些直线。我们知道斜率最大(接近正无穷)和斜率最小(接近负无穷)的是肯定要被保留下来的,而且还是在最两侧的两条直线。 那么对于一般的直线,我们考虑一下。 如上图,这两条直线 阅读全文
posted @ 2018-08-20 23:59 CaptainLi 阅读(187) 评论(0) 推荐(0) 编辑
摘要:传送门 ovo这其实是一道置换 + DP的题,不过蒟蒻已经快忘了置换怎么做了…… 或许这道题使用组合数的方法更容易一些。 我们先考虑一下,满足题目中各种卡牌颜色要求的染色个数一共有多少种,这个很显然,是C(n,sr)* C(n - sr,sb) * C(n-sr-sb,sg)(后面那项结果就是1其实 阅读全文
posted @ 2018-08-18 00:24 CaptainLi 阅读(243) 评论(2) 推荐(0) 编辑
摘要:传送门 这完全是一道bug题…… 用普通的方法来想,我们肯定是要枚举每一颗行星的,之后对于每颗行星,我们计算一下能影响到它的行星。从行星的引力计算公式来看,这样无论如何都无法用有效的算法求解。分子可以用前缀和,但是分母必须一个一个算,我们不可能全部通分一遍再计算的……而且那样的复杂度和原来也是一样。 阅读全文
posted @ 2018-08-18 00:13 CaptainLi 阅读(128) 评论(0) 推荐(0) 编辑
摘要:传送门 这道题一开始我想的是使用组合数求解……后来发现这根本不可能…… 无奈之下看了dalao们的题解,有人说要用什么矩阵生成树……我也看不懂……只好看了各位dalao把DP式推出来的题解。 在1~5的时候,对应的轮状病毒的个数分别为1,5,16,45,121.可以发现奇数项全部是完全平方式,而偶数 阅读全文
posted @ 2018-08-17 22:49 CaptainLi 阅读(185) 评论(0) 推荐(0) 编辑
摘要:题目传送门 看题目描述中,码头的个数小的可怜,竟然只有20,一开始想会不会又是网络流或者状压DP啥的。(好像状压DP真能做QAQ) 不过读完题之后,发现这应该是一道求最短路的题,而且还不只是最短路,既然又可以改道又要求最小花费,那么肯定还有DP. 最短路+DP的结合题。我们可以这么考虑,反正这题数据 阅读全文
posted @ 2018-08-17 22:09 CaptainLi 阅读(151) 评论(0) 推荐(0) 编辑
摘要:题目传送门 这道题的m,n都非常的小,之后又看到……武器是可以连续攻击的,于是初步想到了网络流。 想到这道题是网络流之后,就很自然的想到应该在武器与机器人之间建边,在源点和武器之间建边,在机器人和汇点之间建边。 不过应该怎么建呢?我们知道武器可以连续攻击,就可以把武器的攻击看做水流,那么很显然,武器 阅读全文
posted @ 2018-08-17 21:56 CaptainLi 阅读(192) 评论(0) 推荐(0) 编辑
摘要:题目描述 这道题可以看出来是最小割的板子题,不过因为这道题的n,m都到了1000,所以总点数是10^6,直接跑最小割会超时。 于是我们要新引入一个概念:对偶图。 我们先说一下什么是平面图。平面图就是所有的边只在顶点处相交。 比如上面的图就是一个平面图。 对于每一个平面图,都有与之对应的对偶图。平面图 阅读全文
posted @ 2018-08-17 21:46 CaptainLi 阅读(193) 评论(0) 推荐(0) 编辑
摘要:众所周知,Dijkstra算法是跑单源最短路的一种优秀算法,不过他的缺点在于难以处理负权边。 但是由于在今年的NOI赛场上SPFA那啥了(嗯就是那啥了),所以我们还是好好研究一下Dij的原理和它的优化吧。 (前面那篇写的太简陋了) 1.Dijkstra算法的原理 首先,我们先假设整个图已经被建完而且 阅读全文
posted @ 2018-08-15 00:17 CaptainLi 阅读(3060) 评论(0) 推荐(1) 编辑
摘要:C++中的STL模板库的功能可谓相当强大。今天我们来简单说一下set和map的使用方法。 1.pair 我们先来说一下pair。pair定义在头文件<utility>中,其本身相当于一个已经重定义过的,有两个元素的结构体。它始终以前一个元素(first)为第一关键字,后一个元素(second)为第二 阅读全文
posted @ 2018-08-14 21:09 CaptainLi 阅读(7687) 评论(0) 推荐(1) 编辑
摘要:今天肖大佬对我们还是非常仁慈的,数据不是很强,导致我成功用暴力卡过T1的80pts和T2的100pts…… 废话少说,直接看吧。 T1.flower【题目描述】 终于,在一段繁忙的训练之后,到了 NOIP 的举办的时候。同学们坐上了大巴车,享受着沿途的风光,讨论着未解决的问题,憧憬着 NOIP 赛场 阅读全文
posted @ 2018-08-10 00:02 CaptainLi 阅读(144) 评论(0) 推荐(0) 编辑
摘要:最惨烈的一次模拟祭(不过今天之后他就要变成第二惨烈了) 三道题一道都不会做 + 模拟时心态爆炸 不模拟永远不知道自己有多菜。不管怎么说,发现问题之后解决一下吧。 T1.rate 【题目描述】你是一个骁勇善战、日刷百题的 OIer. 今天你已经在你 OJ 上提交了 y 次,其中 x次是正确的,这时,你 阅读全文
posted @ 2018-08-09 01:00 CaptainLi 阅读(156) 评论(0) 推荐(0) 编辑
摘要:题目描述:https://www.luogu.org/problemnew/show/CF838D(有翻译) (为什么博客园把我刚写的给吞了……orz) 这题当初看的十分懵逼,不过听了肖大佬的做法还是很清楚的。 因为乘客们可以从双向进入,然后乘客只会看给自己安排的座位和后面的空座位,所以我们不如直接 阅读全文
posted @ 2018-08-06 23:53 CaptainLi 阅读(633) 评论(0) 推荐(0) 编辑
摘要:题目描述:http://codeforces.com/problemset/problem/492/E (英文题)翻译不写了大家都能看懂。 看到这道题的第一想法是啥……?暴力模拟?其实这题似乎还真的可以暴力模拟,不过要选对模拟的方法。首先我们看,因为dx,dy都与n互质,我们用那么我们以dx为例,就 阅读全文
posted @ 2018-08-06 23:02 CaptainLi 阅读(185) 评论(0) 推荐(0) 编辑
摘要:题目描述:https://www.luogu.org/problemnew/show/P3960 这题当时我在NOIP的时候只会暴力模拟,然后拿了30pts…… 今天肖大佬给我们讲课的时候讲了这道题……正解有树状数组,有线段树,有splay……大佬给我们讲的是线段树做法。 首先先说一下,线段树怎么动 阅读全文
posted @ 2018-08-06 00:09 CaptainLi 阅读(1010) 评论(0) 推荐(1) 编辑
摘要:题目链接:https://www.luogu.org/problemnew/show/P2827 这道题当时第一眼看到的时候觉得好像很简单……?!以为直接用个优先队列维护最大值,再开个全局变量记录一下所有蚯蚓一共都长了多少就行了。 一看数据范围,7*10^6?!好像O(nlogn)跑不过只能拿80分 阅读全文
posted @ 2018-08-05 23:26 CaptainLi 阅读(328) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示