摘要: $ 2019 $ 暑期刷题记录 $ 2 $ (基本算法专题) $ by~~wch $ " $ BZOJ~1958~Strange~Towers~of~Hanoi $ " (动态规划,递推) 题目大意: 求有 $ n $ 个盘子和 $ 4 $ 座塔的汉诺塔问题。 $ solotion: $ 1. 首先 阅读全文
posted @ 2019-07-26 11:34 一只不咕鸟 阅读(361) 评论(0) 推荐(0) 编辑
摘要: " $ POJ~3889~Fractal~Streets $ " (模拟) $ solution: $ 这是一道淳朴的模拟题,最近发现这种题目总是可以用逼近法,就再来练练手吧。 首先对于每个编号我们可以用逼近法求出它在各个图上是处于左上,右上,左下,右下中的哪一个。 然后我们在用逼近法将它的坐标一步 阅读全文
posted @ 2019-07-26 10:55 一只不咕鸟 阅读(326) 评论(0) 推荐(0) 编辑
摘要: " $ POJ~2018~Best~Cow~ Fences $ " (二分答案构造新权值) $ solution: $ 题目大意: 给定正整数数列 $ A $ ,求一个平均数最大的长度不小于 $ L $ 的子段 1. 这道题首先我们如果没有长度限制,直接扫一遍数组即可 2. 而有了长度限制之后我们的 阅读全文
posted @ 2019-07-26 10:40 一只不咕鸟 阅读(350) 评论(0) 推荐(0) 编辑
摘要: " $ CH~5E26~\times ~ $ 扑克牌:" (计数类DP) $ solution: $ 唉,计数类DP总是这么有套路,就是想不到。 这道题我们首先可以发现牌的花色没有价值,只需要知道每种牌有 $ (0,4] $ 张,牌的面值也不用管,只需要知道总共有 $ (0,13] $ 种牌。然后我 阅读全文
posted @ 2019-07-19 20:07 一只不咕鸟 阅读(500) 评论(0) 推荐(0) 编辑
摘要: " $ BZOJ~1911~ ~ $ 特别行动队:" (斜率优化) $ solution: $ 感觉这道题目还是比较常规的,首先我们很容易想到DP,因为题目里面说了选出的人都是连续的,这意味着我们可以从前往后DP。我们直接设 $f[i]$ 表示前 $i$ 在分组之后的战斗力之和(因为题目没有明确要求 阅读全文
posted @ 2019-07-19 15:32 一只不咕鸟 阅读(221) 评论(0) 推荐(0) 编辑
摘要: " $ BZOJ~1233~~ $ 干草堆:" (题目特殊性质) $ solution: $ 很妙的一道题目,开始看了一眼觉得是个傻逼贪心,从后往前当前层能多短就多短,尽量节省花费。但是这是DP专题,怎么会有一道小贪心混进来?上网一搜,我果然还是太笨了! 这组小数据直接把贪心逼上绝路,如果顶层只有6 阅读全文
posted @ 2019-07-19 11:05 一只不咕鸟 阅读(339) 评论(0) 推荐(0) 编辑
摘要: " $ POJ~1038~~\times Bugs~Integrated~Inc: $ " (复杂的状压DP) $ solution: $ 很纠结的一道题目,写了大半天,就想练练手,结果这手生的。其实根据之前那道炮兵阵地就不应该写的,但是总觉得自己的思路会好一些,码量又小。 博主的核心思路其实就是用 阅读全文
posted @ 2019-07-18 22:17 一只不咕鸟 阅读(301) 评论(0) 推荐(0) 编辑
摘要: "股票交易" $ solution: $ 这道题以前就写了,题目很好,但自己没有发题解,来补一篇: 首先,题目出得很有迷惑性,但我们不难想到状态要设天数,和自己手上的股票数目(因为这两个就是充要信息)。而我们转移也比较常规,跟着题意模拟就行: 1. (不买不卖): $ f[i][j]=f[i 1][ 阅读全文
posted @ 2019-07-18 14:34 一只不咕鸟 阅读(243) 评论(0) 推荐(0) 编辑
摘要: " $ POJ~1390~~Blocks: $ " (很难想的区间DP) $ solution: $ 很好的一道题目。看起来似乎很简单,当时一直认为可以用二维区间DP来完成,转移 $ n^3 $ 。 后来发现如果用二维表示当前状态,转移可以说无路可走。因为可能存在原本不相邻的多个区间最后是一起消除的 阅读全文
posted @ 2019-07-16 16:08 一只不咕鸟 阅读(186) 评论(0) 推荐(0) 编辑
摘要: $ 2019 $ 暑期刷题记录: " $ POJ~1952~~BUY~LOW, BUY~LOWER: $ " (复杂度优化) 题目大意: 统计可重序列中最长上升子序列的方案数。 1. 题目很直接的说明了所求为 $ LIS $ 的方案数 2. 但是题目给出的元素是会重复的,结果需要去重 3. 用 $ 阅读全文
posted @ 2019-07-15 22:30 一只不咕鸟 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 赛题 A : " P5461 赦免战俘" 题目大意: 现有一个 $ 2^n\times 2^n (n\le10) $ 的正方形矩阵,初始时全部为1。现将正方形矩阵 均分 为 4 个更小的正方形矩阵,其中左上角那一个矩阵的所有元素变为0,剩下 3 个小矩阵中,每一个矩阵继续 均分 为 4 个更小的矩阵 阅读全文
posted @ 2019-07-15 22:03 一只不咕鸟 阅读(352) 评论(0) 推荐(0) 编辑
摘要: "CH 5402 选课" $ solution: $ 最近真是!越做题越觉得自己弱。这道题比较综合,它将有向树和背包结合,完全刷新世界观。首先我们可以发现这些课程显然不能随意调动顺序来背包,他们之间的关系可以用一颗有向树来表示(每一个节点代表一门课程,要选这门课程必须将它的祖先全都选了),但是这些树 阅读全文
posted @ 2019-06-13 14:38 一只不咕鸟 阅读(335) 评论(0) 推荐(1) 编辑
摘要: "CH 5302 金字塔" $ solution: $ 很神奇的一道题目,当时看到还以为是一道字符串求回文子串的题目。但是数据范围很小,而且只知道回文串也不好做。但是我们观察可得,如果是深度搜索便利,那么它经过的子树应该是从左到右排列有序的,于是我们想到线性DP。然后我们发现似乎可以单独求某一段的便 阅读全文
posted @ 2019-06-13 09:07 一只不咕鸟 阅读(247) 评论(0) 推荐(0) 编辑
摘要: " $ CH 5105 Cookies $ " $ solution: $ 真是好题一道! 这道题我想了很久很久,就得这一题可以直接完全贪心,可惜最后还是失败了,但是对贪心的深入思考也换来了一个最优解方案。然后这一题的DP也考的很有技术! 贪心1: 这一道题当时第一眼就是贪心。首先不管每一个孩子的贪 阅读全文
posted @ 2019-06-12 16:37 一只不咕鸟 阅读(327) 评论(2) 推荐(0) 编辑
摘要: "CH 5102 Mobile Service" $ solution: $ 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求。所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有点大,而且我们需要记录三个人的位置信息。但是我们可以发现完成一个请求时三个人中必然有一人在这个请 阅读全文
posted @ 2019-06-12 09:28 一只不咕鸟 阅读(238) 评论(1) 推荐(0) 编辑
摘要: ​ 逼近法是一种很奇妙的算法,以为“逼近”这一种思想在很多的算法中都有体现。诸如:像我们的二分答案,不断地排除决策集合的一半以接近我们的最终答案;我们的树上倍增求 $ LCA $ 算法,一次次的减小我们跳的距离以确定祖先的准确位置;我们的模拟退火需要用一个温度,每次操作后这个温度一定会下降,逼近正确 阅读全文
posted @ 2019-06-11 21:31 一只不咕鸟 阅读(1090) 评论(0) 推荐(1) 编辑
摘要: "CodeForces 559C Gerald and Gia" 大致题意:有一个 $ N\times M $ 的网格,其中有些格子是黑色的,现在需要求出从左上角到右下角不经过黑色格子的方案数(模 $ 10^9+7 $ ) $ solution: $ 首先 $ orz $ 鸽王,看一眼就说:“嗯?这 阅读全文
posted @ 2019-06-11 20:13 一只不咕鸟 阅读(303) 评论(0) 推荐(0) 编辑
摘要: "Batch Scheduling" $ solution: $ 这应该是斜率优化中最经典的一道题目,虽然之前已经写过一道 $ catstransport $ 的题解了,但还是来回顾一下吧,这道题其实较那一道还是难一些,只不过 $ catstransport $ 很难找到最好码代码的式子。 首先单调 阅读全文
posted @ 2019-06-11 16:54 一只不咕鸟 阅读(263) 评论(0) 推荐(0) 编辑
摘要: "Cut the Sequence" $ solution: $ 这道题出的真的很好,奈何数据水啊! 这道题当时看得一脸懵逼,说二分也不像二分,说贪心也不像贪心,说搜索吧这题数据范围怎么这么大?而且这题看起来也实在不好DP,当时是真的满头雾水。只能说是各个都尝试一下。最后还是选了DP来做第一步突破, 阅读全文
posted @ 2019-06-11 15:56 一只不咕鸟 阅读(311) 评论(0) 推荐(1) 编辑
摘要: "poj 1821 Fence" $ solution: $ 这道题因为每一个粉刷的人都有一块“必刷的木板”,所以可以预见我们的最终方案里的粉刷匠一定是按其必刷的木板的顺序排列的。这就提示了我们可以用线性 $ DP $ ,只需要将粉刷匠按必刷的木板排序即可。 设 $ F[ $ i $ ][j] $ 阅读全文
posted @ 2019-06-11 11:45 一只不咕鸟 阅读(329) 评论(0) 推荐(0) 编辑
摘要: "炮兵阵地" $ solution: $ 这一道题限制条件有点多,我们需要逐个击破: 1. 首先要判断这一格是否为山地,这个可以状态压缩 2. 然后我们的左右一定距离不能有炮兵,这是一个突破口,因为我们看数据发现每行不超过十个格子!这样的话我们完全可以预处理出来每一行的填充方案而且这些方案肯定很少! 阅读全文
posted @ 2019-06-11 10:40 一只不咕鸟 阅读(245) 评论(0) 推荐(0) 编辑
摘要: "Mondriaan's Dream" $ solution: $ 这道题 $ wch $ 首先想到的是搜索和状态压缩,因为这道题的方块可以竖着也就是产生一个凸起(这里可以状态压缩),我们可以枚举它i行j列上下端凸起的情况产生的方案数,然后进行合并。但是这种方法需要维护的东西太多了,复杂度也很难预测 阅读全文
posted @ 2019-06-11 09:56 一只不咕鸟 阅读(196) 评论(0) 推荐(0) 编辑
摘要: "CodeForces 24D Broken robot" 大致题意:你有一个n行m列的矩形板,有一个机器人在开始在第i行第j列,它每一步会随机从 可以选择 的方案里任选一个(向下走一格,向左走一格,向右走一格,留在原地),现在我们要求它走到最后一行的期望步数 $ solution: $ 这道题我们 阅读全文
posted @ 2019-06-11 09:10 一只不咕鸟 阅读(193) 评论(0) 推荐(0) 编辑
摘要: " $ Naptime $ " 描述 Goneril是一只睡眠不足的母牛。她的一天被划分为N(3 include include include include include include include include include include include define ll lon 阅读全文
posted @ 2019-06-11 08:54 一只不咕鸟 阅读(259) 评论(0) 推荐(1) 编辑
摘要: "Accumulation Degree" 大致题意:有一棵流量树,它的每一条边都有一个正流量,树上所有度数为一的节点都是出口,相应的树上每一个节点都有一个权值,它表示从这个节点向其他出口可以输送的最大总流量。我们的任务就是求这个最大总流量。 $ solution: $ 这一道题需要仔细思考其性质, 阅读全文
posted @ 2019-06-11 08:33 一只不咕鸟 阅读(246) 评论(0) 推荐(0) 编辑
摘要: "Polygon" $ solution: $ upd:还是多讲一下,这道题基本上可以说是一道思维题、一道结论题、一道考验你动态规划基本功是否扎实的题目。因为这道题的数据范围很小,思考一下总能想到断环成链的(因为去处环形后效性的方法就两个,一个是断环成链,另一个就是将环等效成两次线性DP,但是后者有 阅读全文
posted @ 2019-06-10 19:34 一只不咕鸟 阅读(316) 评论(0) 推荐(0) 编辑
摘要: " $ Coins $ " $ solution: $ 这道题很短,开门见山,很明显的告诉了读者这是一道多重背包。但是这道题的数据范围很不友好,它不允许我们直接将这一题当做01背包去做。于是我们得想一想优化。 $ bitset $ 优化: 这个是我最先想到的,因为这道题只牵扯到了能不能买,就是一个“ 阅读全文
posted @ 2019-06-10 17:21 一只不咕鸟 阅读(383) 评论(1) 推荐(0) 编辑
摘要: " $ Jury Compromise $ " $ solution: $ 这道题很有意思,它的状态设得很...奇怪。但是它的数据范围实在是太暴露了。虽然当时还是想了好久好久。首先出题人设了几个限制(两个的总和差值最小)(然后需要让它的总和最大)。我们发现每一个人的顺序是无关紧要的,这其实又提示了我 阅读全文
posted @ 2019-06-10 16:40 一只不咕鸟 阅读(166) 评论(1) 推荐(0) 编辑
摘要: " $ Greatest Common Increasing Subsequence $ " 大致题意:给出两个长度不一定相等的数列,求其中最长的公共的且单调递增的子序列(需要具体方案) $ solution: $ 这道题如果不看具体方案,且我们要求的子序列不存在相同的元素,那么我们可以用 $ cd 阅读全文
posted @ 2019-06-10 16:11 一只不咕鸟 阅读(271) 评论(0) 推荐(0) 编辑
摘要: "poj 2279 Mr. Young's Picture Permutations" $ solution: $ 首先摘取一些关键词:(每行不超过它后面的行)(每排学生安排高度从左到右减少)(学生的高度应该从后面到前面减少)。这个已经很提示我们轮廓线DP了。而且这一题的数据范围也十分的小:行数不超 阅读全文
posted @ 2019-06-10 11:02 一只不咕鸟 阅读(210) 评论(0) 推荐(0) 编辑
摘要: $ LCS: $ 对于两个长度均为 $ N $ 的数列 $ A $ 和 $ B $ ,存在一个数列 $ C $ 使得 $ C $ 既是 $ A $ 的子序列有事 $ B $ 的子序列,现在需要求这个数列的最长的长度,这就是最长公共子序列。 $ solution\quad 1: $ 这道题是世界上最经 阅读全文
posted @ 2019-06-10 10:23 一只不咕鸟 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 题面 $ solution: $ 首先做个推销: "带负数的压位高精度(加减乘+读写)" 然后:由 $ N $ 个节点组成的无向图的总数为: $ 2^{N\times (N 1)/2} $ (也就是说这个图总共有 $ N\times (N 1)/2 $ 条边,每一条边选或不选就可以得出来) 然后我们 阅读全文
posted @ 2019-06-10 08:34 一只不咕鸟 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 求最长上升子序列的三种经典方案: 题型简介: 给定一个长度为 $ N $ 的数列,求它数值单调递增的子序列长度最大为多少。即已知有数列 $ A $ , $ A=\{A\_1,A\_2....A\_n\} $ ,求 $ A $ 的任意子序列 $ B $ ( $ B=\{A\_{k\_1},A\_{k\ 阅读全文
posted @ 2019-06-09 09:33 一只不咕鸟 阅读(18022) 评论(5) 推荐(7) 编辑
摘要: " $ Cats Transport $ " 感觉这道题题面不好讲,就自翻了一个新的,希望有助于大家理解其思路: 大致题意: $ wch $ 的家里有 $ N $ 座山(山呈直线分布,第 $ i 1 $ 座山到第 $ i $ 座山距离为 $ Di $ )。 $ wch $ 中了 $ M $ 粒种子, 阅读全文
posted @ 2019-06-08 15:57 一只不咕鸟 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 本算法使用压位(9位) 目前支持负数的加减乘,以及快速读写 阅读全文
posted @ 2019-05-21 19:54 一只不咕鸟 阅读(638) 评论(2) 推荐(0) 编辑
摘要: "洛谷 P2257 YY的GCD" $ solution: $ 这道题完全跟 "[POI2007]ZAP Queries (莫比乌斯反演+整除分块)" 用的一个套路。 我们可以列出答案就是要我们求: $ ans=\sum\_{p\in prime}\sum\_{i=1}^{n}{\sum\_{j=1 阅读全文
posted @ 2019-04-18 13:49 一只不咕鸟 阅读(189) 评论(0) 推荐(0) 编辑
摘要: "[POI2007]ZAP Queries" $ solution: $ 唉,数论实在有点烂了,昨天还会的,今天就不会了,周末刚证明的,今天全忘了,还不如早点写好题解。 这题首先我们可以列出来答案就是: $ ans=\sum\_{i=1}^{a}{\sum\_{j=1}^{b}{[gcd(i,j)= 阅读全文
posted @ 2019-04-15 21:01 一只不咕鸟 阅读(243) 评论(0) 推荐(0) 编辑
摘要: "[SDOI2010]古代猪文" $ solution: $ 这道题感觉综合性极强,用到了许多数论中的知识: 1. 质因子,约数,组合数 2. 欧拉定理 3. 卢卡斯定理 4. 中国剩余定理 首先我们读题,发现题目需要我们枚举k(就是n的所有约数),并且对于每一个k都要用一个组合数算出其情况数(读题 阅读全文
posted @ 2019-04-12 20:50 一只不咕鸟 阅读(251) 评论(0) 推荐(0) 编辑
摘要: "[HAOI2018]奇怪的背包" $ solution: $ 首先,这一道题目的描述很像完全背包,但它所说的背包总重量是在模P意义下的,所以肯定会用到数论。我们先分析一下,每一个物品可以放无数次,可以达到的背包重量其实就是所有 $ gcd(a[i],P) $ 的倍数。 这一点和天天爱跑步简直神似! 阅读全文
posted @ 2019-04-11 14:16 一只不咕鸟 阅读(447) 评论(0) 推荐(0) 编辑
摘要: "[CQOI2011]放棋子" $ solution: $ 看到这道题我们首先就应该想到有可能是DP和数论,因为题目已经很有特性了(首先题面是放棋子)(然后这一题方案数很多要取模)(而且这一题的数据范围很小) 但真正实用的还是分析题目性质:这一道题我们仔细读题,可以发现每一种棋子的影响是相对独立的( 阅读全文
posted @ 2019-04-10 20:02 一只不咕鸟 阅读(226) 评论(0) 推荐(0) 编辑