![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 85
灯灯登登
杂学派,热衷各种技术
展开
-
代码源每日一题 div1 #802 吃蛋糕
802 吃蛋糕思路读完题目,以及看到数据范围,大概猜出来,这题是概率dp观察到ai<=3a_i <= 3ai<=3,所以从这个条件入手。f[i][j][k]f[i][j][k]f[i][j][k]表示,当前有1个蛋糕的盆子有i个,2个蛋糕盆子有j个,3个蛋糕有k个,吃完这些蛋糕的所有方案。设计完状态之后,转移方程就很好实现了,答案就是下面四种情况加起来吃1个蛋糕的盆子。i/n∗f[i−1][j][k]i/n * f[i-1][j][k]i/n∗f[i−1][j][k]2原创 2022-04-26 00:35:10 · 308 阅读 · 0 评论 -
2022 leetcode 春季赛 LCP 53. 守护太空城
题目链接 LCP 53. 守护太空城题意给你一堆t(1<=t<=5)t(1<=t<=5)t(1<=t<=5)时间到达位置p的陨石,有三种防御措施,每中措施有不同的消耗。问消耗最少的方案的消耗选择一个舱室开启屏障,能量消耗为 2选择相邻两个舱室开启联合屏障,能量消耗为 3对于已开启的一个屏障,多维持一时刻,能量消耗为 1注意:同一时间,一个舱室不能被多个屏障覆盖陨石雨仅在到达时刻对冲击位置处的舱室有影响思路观察数据范围 t(1<=t&l原创 2022-04-24 16:23:41 · 323 阅读 · 0 评论 -
AtCoder Beginner Contest 247 F Cards
F - Cards思路把每一张牌想象成一条边,牌正面跟反面想象成点。那么这个问题就变成了,从大小为n的边集选出来一些子集合,是的这个子集完全覆盖住所有的点,问这些子集有多少个?观察到P,Q是一个1~n的排列,所以每个1~n中的每个点总共出现两次,也就是说,每个点都有两条边与其相连如果选上所有的边,那么1~n构成的图肯定是若干个环,且环上任意一条边只属于一个环,这个第一点已经证明。所以我们可以单独考虑每个环有多少种方案,再利用乘法原理,把每个环的方案数量相乘即可得到答案。现在考虑一个包含m个原创 2022-04-20 12:49:25 · 811 阅读 · 0 评论 -
代码源 每日一题 div1 删数
删数今天的题又不会写,所以来写题解总结一下题意给你一个数组,每次如果ai=(ai+1+ai−1)/2a_i=(a_{i+1}+a_{i-1})/2ai=(ai+1+ai−1)/2,那么就可以删除aia_iai。问这个数组经过一系列删除后最短长度是多少?思路...原创 2022-04-13 13:13:27 · 786 阅读 · 0 评论 -
代码源每日一题 div1 #709. 最大权值划分
最大权值划分大概题目意思是给你一个数组,你需要把它划分为连续的一些子数组,使得每个子数组的max-min最小。思路第一眼的时候没啥思路,直接想了个O(n2)O(n^2)O(n2)的做法,也就是枚举最后一个子数组划分到哪里,也不懂咋优化。正解观察到最大减最小(极差问题),等价于给一个子数组里面的两个数字,一个给一个+号,一个给一个-号,成对赋予了这些符号后,整个数组的极差最大。那么可以先不考虑怎么划分,想象最优解,数组中的正负号形态肯定也是像上面所说的那样。即..+.....−..−...+...原创 2022-04-12 10:20:14 · 238 阅读 · 0 评论 -
leetcode杯 LCP 38. 守卫城堡
LCP 38. 守卫城堡题解给了两个解法,但是最小割我不太会,所以来写下我对dp解法对理解题意给你一个2∗N2*N2∗N的图,有城堡,怪物,障碍物,传送门,空地五种类型的物体。你每次可以放一次障碍物,问:至少需要放多少次才能把怪物跟城堡完全分隔开?思路一些不怎么显然的观察讲道理看到图是2∗N2*N2∗N我想过用dp怎么做,但是想不到。这题的转移方式非常特别,我们来考虑怎么设计状态,因为有传送门,所以我们想到,怪物要么借助传送门走到城堡,要不不用传送门也能走到城堡。借助传送门走到城堡,如果有解原创 2022-04-11 15:51:52 · 269 阅读 · 0 评论 -
代码源 每日一题 div1 环的数量
环的数量原题链接题目大意给定一张含有 𝑛 个点,𝑚 条边的简单图,求简单环的数量。思路看到n<=19n<=19n<=19这个数据范围,我们来考虑状态压缩DP,想到一个类似的哈密顿回路问题,那么这个题也可以用类似的方法来解决状态设计:f[i][j]f[i][j]f[i][j]为当前经过的点集为i,且当前在j号点上的路径数量。其中起点为low(i), 后面解释这个起点的含义。那环怎么解决?可以这样规定,假设有一个环,那它的状态为i,low为iii的最低有效位(也就是最低为1的那个原创 2022-04-10 20:51:34 · 235 阅读 · 0 评论 -
代码源 div1每日一题 #507.测温
测温这道题好独特,本来以为是贪心+单调栈之类的。。后来想了下发现有个信息完全不知道怎么维护,下面是整理dls的思路。考虑一个比较暴力的方法,dp[i][j]dp[i][j]dp[i][j]为考虑到第i天,当前温度为j时,连续的最长天数,所以我们有这样的转移dp[i][j]=dp[i−1][k]+1,k<=jdp[i][j] = dp[i - 1][k]+1, k <= jdp[i][j]=dp[i−1][k]+1,k<=j这个dp的时间复杂度为O(n∗W)O(n*W)O(n∗W)原创 2022-04-08 22:08:46 · 528 阅读 · 0 评论