摘要: 传送门 题目大意 有一个0~n-1的序列,有m次操作,操作包含三个元素:pl,len,ti,表示这个操作进行ti次,每次将从pl+1开始的len个元素移到序列头部。分析 看到题不难想到使用平衡树将需移动部分切出来挂到顶部。本题我使用fhqtreap来实现,但需要注意的是对于挪动部分使用的split不 阅读全文
posted @ 2018-07-30 15:22 水题收割者 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 有m+1个点,0是起点,m是终点,i-1到i有一条边,有一个船由0驶往m,不能返回,它在载重小于等于ci时通过第i条边消耗的时间为di否则为Di,现在有n个人,每个人体重为wi,上船或下船消耗时间为si,如果自己走则通过每一条边消耗的实际均为ti,要求船上必须一直有人,求所有人到终 阅读全文
posted @ 2018-07-29 11:47 水题收割者 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 国家有N个城市,任意城市可以到达任意城市,是一棵树。国王要给这些城市分省份。每个省份最少M个城市,最多3M个城市。每个省有一个首府,首府不一定是这个省的城市,只是首府到这个省各个城市只能经过这个省的城市。给出N和M,求分配方案,输出有多少个省,各个城市属于哪个省,每个省的首府是哪个 阅读全文
posted @ 2018-07-27 15:58 水题收割者 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 看式子懂题意系列... 分析 自然想到我们先按比例下取整得到一个值,再按每个人这样分配所产生的值从大到小排序,然后将剩下的几个金币自大到小每人分配一个,代码挺好理解的,详见代码。 代码 阅读全文
posted @ 2018-07-26 10:27 水题收割者 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 对于这道题,我们首先思考一个贪心策略,即对于所有我们要打败的厨师我们肯定可以先打败需使用帮助次数少的厨师再打败需使用帮助次数多的厨师 ,因为这样可以使得能支付得起帮助费用的可能性尽可能的大。在确定顺序之后我们便可以进行dfs啦,只需要在搜索过程中加一些可行性剪枝和最优性剪枝就行了。 代 阅读全文
posted @ 2018-07-25 14:37 水题收割者 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先我们不难想到1e4^5的暴力枚举,但显然这是不行的,于是我们考虑对于每一张海报肯定有一种最优情况使得它至少有一条边要么靠着板子的边要么靠着之前的某一张海报的边,这样我们便可以将复杂度优化了很多。我们再考虑将每一种情况进行哈希,这样便可以避免了如图一的情况(矩形中的数字是指这个矩形是 阅读全文
posted @ 2018-07-24 15:27 水题收割者 阅读(363) 评论(3) 推荐(0) 编辑
摘要: 传送门 题目大意 给你一张图,求这张图的汉密尔顿回路。 分析 因为m≤n+20,所以如果存在回路一定是在一个环中加入了至多20条边。我们先考虑dfs,但我们发现如果出现图1这种情况就会是复杂度爆炸 图1图2 我们发现如果有很多这样的三角形程序就会爆炸。所以我们考虑优化。我们发现对于所有出度为1的点我 阅读全文
posted @ 2018-07-23 13:55 水题收割者 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 这道题真的好水呀QwQ,想必大家都知道对于式子|x-2|+|x-3|x取什么值可以使式子结果最小,这道题也是这个原理,只需要将要额外减的1、2、3……提前减掉就行了。 代码 阅读全文
posted @ 2018-07-21 15:53 水题收割者 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先我们想到的肯定是n^3暴力枚举,但这显然不行。然后我们想到的就是二分了,但这题没有什么单调性,所以二分也不行。这时候我就想到了先枚举找出p2的位置再在它的左右两边找到p1和p3,但是良心的样例2告诉了我这样是不行的,因为让p2的位置最优并不意味着整体最优。之后我发现可以枚举p2,在 阅读全文
posted @ 2018-07-21 15:07 水题收割者 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 给定两个数n,p;表示n个点中任意两点连边的概率为p,求生成的图是个连通块的概率 分析 我们发现直接求产生联通块的概率并不容易,于是我们转而考虑计算不能生成联通块的概率,公式如下: 代码 阅读全文
posted @ 2018-07-21 13:14 水题收割者 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 给你一个包含n 个单词的字典,给你一篇文章,文章包括若干词典里的单词,把句子里的空格都去掉,单词的首位字母都不变,中间的字符集为乱序,问能否恢复这篇文章,使得单词都是词典里的单词,如果有唯一解,输出唯一解。 分析 可以将将一段字符串哈希来确定这段字符串的字母组成,在记录每一段的首字 阅读全文
posted @ 2018-07-21 12:57 水题收割者 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 给定n个区间,问你被覆盖至少k次的区间(两端连续区间可以合并)最少有多少个,并输出。 分析 大水题呀QwQ,只需要将每个点的位置及它是左端点还是右端点这两个信息存起来然后进行一些简单操作就行了,详见代码。 代码 阅读全文
posted @ 2018-07-21 08:33 水题收割者 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 给出一些墙,水从高往低流,每次只能到达一面墙,选择一个路径,使得路径上的流量的最小值最大。 分析 这是一道经典的扫描线题,我们发现能够合法的线段对数至多只有n对。将一条线段拆成两个点,自左向右排序依次加入set中,按照高度关系将它们相连,详见代码(也可以用线段树做这道题,有时间再补 阅读全文
posted @ 2018-07-20 14:28 水题收割者 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 有两种染料,给定它们的单价和数量,每染色一米需耗费一个单位的染料,一条边只能用一种燃料,给你一张图,要求你将其中的一些边染色使得在满足图联通的情况下花费最小并输出方案。 分析 首先,要求图联通且花费最小我们不由想到了求最小生成树,在求完之后我们的问题就变成的看每条边要被染成哪种颜色 阅读全文
posted @ 2018-07-19 21:55 水题收割者 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 给你n个字符串,问是否可以通过改变26个字母的排列顺序是这n个字符串的字典序是非降排列的。 分析 我们考虑设相邻两个字符串的第一个不相同字符的位置为j,以为要求字典序不降,所以有第i个字符串的第j位向第i+1个字符串的第j位连边,最后如果没有环则代表可以找到一种顺序,反之不能。 注 阅读全文
posted @ 2018-07-19 14:39 水题收割者 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 给你n个物品,你有一个容量为W的背包,每一个物品都有它的重量和价值,让你从n个中选取若干个,使得总重量不超过背包的上限,而且使得价值最大。 分析 首先我们不难发现由于W很大,所以这并不是一个普通的01背包,但是我们发现由于所有的wi相差很小,所以如果按体积大小分类,所有物品将仅有4 阅读全文
posted @ 2018-07-19 10:41 水题收割者 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 如果一个数中不包含除4和7之外的数字则是幸运数。有n个岛屿,通过双向道路连接。这些岛屿被分为几个地区。每个岛属于恰好一个区域,同一区域中的任何两个岛之间存在道路,不同区域的任何两个岛之间没有路径。如果一个地区的岛屿数量是一个幸运数字,则这个地区是幸运的。问最少增加几条道路能创建一个 阅读全文
posted @ 2018-07-19 07:59 水题收割者 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 看样例,懂题意 分析 实际就是个区间dp,我开始居然不会...详见代码(代码用的记忆化搜索) 代码 阅读全文
posted @ 2018-07-18 14:56 水题收割者 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 看到这个题我们的第一反应自然是Tarjan缩点,在这之后我们可以发现实际只要在缩点之后所有出度或入度为0的点布置警察局就可以达到要求,我们用dpij表示考虑前i个出度或入度为0的点共布置了j个警察局,s[i]表示这个点原先由几个点构成,tot表示出度或入度为0的点的总数,所以不难得到转 阅读全文
posted @ 2018-07-17 15:53 水题收割者 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 N个人,M组关系,每次选一种关系,如果两个人相邻,则任意删除其中一个,否则不变。问最坏情况下最多能剩多少人。 分析 为了留的人最多,我们可以先将原来不相邻的关系全部说完,这样我们只需要考虑以怎样的顺序说剩下的那些即可。由于剩下的关系可能被分成一段一段的,所以我们只需要预处理在一个均 阅读全文
posted @ 2018-07-16 09:49 水题收割者 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们高兴的发现数据范围特别小,所以我们可以随便搞。因为一共只砍掉一条路,所以我们先算出对于任意一个点如果将它的出边割掉一条则它到达终点的最坏情况的最短距离是多少,然后我们从终点向起点反着跑,按最短路思想算出答案即可,具体实现见代码。 代码 阅读全文
posted @ 2018-07-15 13:57 水题收割者 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先我们要知道为了情况最坏,无论你到哪,一定会在你前往绿洲的最短路上的那片沙子上刮风,所以这个点到绿洲的最短路即为他相连的点中到绿洲距离最短的距离+3和次短的距离+1的最小值,具体实现见代码。 代码 阅读全文
posted @ 2018-07-15 11:14 水题收割者 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 已知某城市的地铁网由一些地铁线路构成,每一条地铁线路由某一个公司运营,该城市规定:若乘坐同一公司的地铁,从开始到换乘只需要一块钱,换乘其他公司的价格也是一块钱,问从1号地铁站到n号地铁站的最低价格。 分析 做法1: 这个题在原图上跑显然是不可能的,所以我们需要考虑如何重新构图,首先 阅读全文
posted @ 2018-07-15 10:52 水题收割者 阅读(563) 评论(0) 推荐(1) 编辑
摘要: 传送门 分析 这个题和传统的田忌赛马不一样的地方就是多了平局情况,所有我们不难想到要用dp。我们先将两人的马均降序排列,用dpij表示考虑前i匹马,田忌有几匹马是按从大到小的顺序从头取的(剩下的是从尾部取的)。 代码 阅读全文
posted @ 2018-07-13 13:59 水题收割者 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先不难想到O(k)做法,即dpi表示进行了几次,但复杂度明显爆炸,所以思考更优做法。我们发现数字个数很小,仅为可怜的50,所以从这里找突破口。我们发现每次可以在一个固定区域内进行刷分活动,当分数可以安全渡过中间的负数时可以选择渡过负数到另一个刷分区刷分,也可以留在本来的区域继续刷分, 阅读全文
posted @ 2018-07-13 13:49 水题收割者 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 先用并查集将所有相等元素连为一个,得到不同的元素共cnt种,之后我们的任务便转化为将这些元素分为k组(k≤cnt),所以我们不难得出dp式:dpij=dpi-1j-1*j+dpi-1j*j 代码 阅读全文
posted @ 2018-07-11 10:53 水题收割者 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目大意 一共有30000个位置,从第0个位置开始走,第一次走k步,对于每一次走步,可以走上一次的ki+1 ,ki ,ki-1步数(必须大于等于1),每个岛上有value,求最大能得到的value能有多少。 分析 首先我们不难想到dpij表示走到第i个位置,上次走的步数为j,然而30000* 阅读全文
posted @ 2018-07-11 08:57 水题收割者 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 T = 10000 ; N, M <= 10000000 分析 代码 阅读全文
posted @ 2018-06-30 08:21 水题收割者 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 因为博客园的markdown是在不敢恭维,所以本文所有内容我都用作业部落写好了截图放在这... 阅读全文
posted @ 2018-06-29 21:55 水题收割者 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目 克里特岛以野人群居而著称。岛上有排列成环行的M个山洞。这些山洞顺时针编号为1,2,…,M。岛上住着N个野人,一开始依次住在山洞C1,C2,…,CN中,以后每年,第i个野人会沿顺时针向前走Pi个洞住下来。每个野人i有一个寿命值Li,即生存的年数。 下面四幅图描述了一个有6个山洞,住有三个 阅读全文
posted @ 2018-06-27 19:47 水题收割者 阅读(332) 评论(0) 推荐(0) 编辑