
动态规划
文章平均质量分 81
记录刷题中遇到的一些好的dp题
CCSU_梅子酒
这个作者很懒,什么都没留下…
展开
-
2019 ICPC 银川题解(A,H,L)
赛时没发挥好6题金尾(rank38),剩下很多能写的题,其中四个dp,傻眼ing。原创 2023-11-05 14:18:30 · 398 阅读 · 0 评论 -
第10届集美大学校赛(F,H)
两个有些难度的dp中文题面,题意略。原创 2023-11-04 14:09:37 · 281 阅读 · 0 评论 -
2023 CPC 广东省赛(B,D, F)
有中文题面,题意就省略了。原创 2023-11-02 19:35:18 · 576 阅读 · 0 评论 -
第十八届黑龙江省赛(K dp)
接下来考虑特殊情况,只需要将得到朋友帮助可以立刻发动一次攻击考虑进去,立刻发动攻击对结果的影响是什么呢?就是这一次发动的这一次攻击不用受到怪兽的伤害,那么结合上面普通情况的方程,我们只需要增加一维,设受到朋友帮助。轮试炼,每轮之间互不影响,并且对于最优策略而言,怪物的数量没有关系,无论是几只怪物,只和我的攻击次数和朋友的帮助有关系。由于每次怪兽群体的总伤害量是随数量变化的,所以每次攻击后受到的伤害是不同的,这样不利于我们求解,只怪物,每一轮试炼都是主角先攻击,在主角的每次攻击后场上。原创 2023-11-02 16:34:18 · 259 阅读 · 0 评论 -
2021 ICPC 澳门站G Cyclic Buffer (特殊的状压dp)
介绍一种特殊的状态压缩dp(自己取的名字),不同于一般的二进制状压dp。这样的状态不会很多,转移不会耗费太多时间。位置上,多移动不一定会是最优的,但不移动一定可以转移到最优的,那么此时就有两个状态。,代表在原地不动,但是这样却无法记录此时数组转动的情况,并且就算能记录转动的距离,关于这样的特殊状态压缩的递推dp,还推荐一道题 2023年牛客多校第四场的 链接。博主个人的写法,时空复杂度比法一的更优秀,但是却不太会证明,所以还是推荐法一。位置上的任意元素,并且有两个操作,一个是将数组所有元素右移一格,此时。原创 2023-10-11 16:33:24 · 277 阅读 · 0 评论 -
2023牛客暑假多校第五场(补题向题解:C,E,B, I)
当时只做出来4个题,被两个学弟的队伍压了一题,可能是因为两个中等题都偏向构造和猜结论这种,我们队伍不太擅长,需要加强这方面的训练。原创 2023-10-07 22:12:31 · 336 阅读 · 0 评论 -
P2466 [SDOI2008] Sue 的小球(区间dp)
显然不行,这样时空复杂度都爆炸了,我们考虑如何维护时间的影响。我们可以把每一步受到时间影响的代价算进去,因为要得到所有物品,那么当前我们没到的地方此后肯定都要经过,当前我们一步花费时间。我们很容易想到移动的情况可能有很多种,可能一会向左一会向右,最终要拿到所有物品。,每单位时间你可以移动一格距离,当你和物品重叠时可以瞬间获取该物品的价值。,那么没获取的物品的价值都会因此减少,并直接影响最终的答案。为状态来进行转移,代表拿完该区间所有物品的最大价值。具体如何维护时间的影响,可以考虑对每个物品减少的速度。原创 2023-09-28 17:17:28 · 233 阅读 · 0 评论 -
2023牛客暑假多校第四场(补题向题解:J)
终于有时间来慢慢补补题了。原创 2023-09-10 20:12:31 · 215 阅读 · 0 评论 -
2023牛客暑假多校第三场(补题向题解:B)
挺可惜的,B题破题点思路已经想到了,但手忙脚乱最终没写出来,又因为赛程紧张也没来得及及时补,最近才开始着手补这些落下的题。原创 2023-09-10 15:53:33 · 168 阅读 · 0 评论 -
AtCoder Beginner Contest 204 F - Hanjo 2(状压DP + 矩阵快速幂加速)
的方块所以要求剩余的连续空位必须是偶数,且方案唯一。但我们无论当前是怎样的形状都能用。的方块去填补剩余的空位,所以我们无须讨论放置方案是否合法而是需要计算放置。那么这里先给出 DP 方程转移,以及方案计算,有详细的代码注释。于是我们就想到用矩阵快速幂来加速这一过程。具体看代码以及注释。我们现在已经写出DP状态和方程转移,但是这样转移是。本题和 Acwing 的状压DP题很像,,告诉我们肯定需要优化。原创 2023-04-11 14:48:12 · 542 阅读 · 0 评论 -
Educational Codeforces Round 146 (Rated for Div. 2)(B,E详解)
题外话:抑郁场,开局一小时只出A,死活想不来B,最后因为D题出锅ura才保住可怜的分。但咱本来就写不到D。原创 2023-04-09 17:26:01 · 968 阅读 · 1 评论 -
“强智杯“2020年湖南省大学生计算机程序设计竞赛(C题)
“强智杯"2020年湖南省大学生计算机程序设计竞赛 C Absolute Difference Equation原创 2023-03-29 23:14:04 · 547 阅读 · 0 评论 -
2019湖南省大学生程序设计竞赛题解(D)
于是我们可以尝试往将区间也能随着我们顺序遍历来解决的方向虑,于是就引申出解法中,:博主在定义自己的方程时意识到,区间是不连续的两个端点组成的,我们枚举前。而我们每遍历一位数,枚举当前可能填入的数之后就可以着手考虑如何让右端点为。的所有区间合法考虑,因为我们找到只要区间内包含两个及以上的。个数则是一位位顺序来的,这样转移方程就不会很顺利。的倍数,问一共有多少种合法的填数方案。),于是就能引申出dp方程的状态。的序列,你可以给每个位置填。要求区间内的数相乘必须为。桶里存储的区间来判断。原创 2023-03-24 22:09:32 · 1164 阅读 · 0 评论 -
AtCoder Beginner Contest 216(F)
AtCoder Beginner Contest 216 F - Max Sum Counting原创 2023-03-11 10:22:04 · 435 阅读 · 0 评论 -
第46届ICPC东亚洲区域赛(昆明)补题题解 (B,F,E)
第46届ICPC东亚洲区域赛(昆明)题解原创 2022-11-09 15:21:20 · 653 阅读 · 0 评论 -
AtCoder Beginner Contest 215 E(DP + 二进制枚举)
ABC 215 E (DP + 二进制枚举)原创 2022-11-05 11:10:50 · 409 阅读 · 0 评论 -
AtCoder Beginner Contest 212 E(DP)
AtCoder Beginner Contest 212E原创 2022-11-04 23:44:57 · 387 阅读 · 0 评论 -
The 2021 ICPC Asia Nanjing Regional Contest H. Crystalfly
2021ICPC南京H题原创 2022-11-01 21:17:05 · 339 阅读 · 0 评论 -
Codeforces Round #772 (Div. 2) A~D
Codeforces Round #772 (Div. 2)比赛链接:Codeforces Round #772 (Div. 2)A - Min Or Sum题目大意: 长度为n的数组,可以任选两个数ai与aj用x和y替换前提是满足ai|aj = x|y。解题思路: 将数在二进制下观察可以发现数组中所有的数OR起来后只要二进制数位上有1就无法将1全部消除掉,最少也要留下一个1。假设数组的数(2进制)是[1111,1000,11,111],那么我们可以通过操作将数组变成[1111,0,0,0]但每一原创 2022-02-21 15:29:58 · 647 阅读 · 3 评论 -
数学考试 思维+前缀和
数学考试题目链接:数学考试题目大意:给定长为n的数组和k,从数组中任意选择不相交的长度为k的两段,求其和的最大值。解题思路:预处理出从[k+1,n]区间内的值最大的长度为k的子串的值,再顺序遍历数组将以当前下标id为右边界的长为k的区间值求出后,加上预处理出[id+1,n]的最大值。这就是当前下标可能取到的最大值。注意事项:需要开long long,且有负数的分数,多组输入需要初始化代码:#include<stdio.h>#include<algorithm>usin原创 2022-01-30 16:48:29 · 736 阅读 · 0 评论 -
牛客动态规划基础题单 1002 舔狗舔到最后一无所有
递推动规题目链接:舔狗舔到最后一无所有题目大意:有三种外卖可以任意点,但要求不能连续三天点同一种外卖,问点n天外卖有多少种可行的方案。dp数组: f[i]:第i天买1号外卖的方案数,由于买2,3号的方案数和1号相同故省略递推公式:f[i] = ((f[i-1]*3%MOD-f[i-3]*2%MOD)+MOD)%MOD;推导思路:因为第i天买1,2,3号外卖的方案数相同,所以用到2,3号外卖方案数的用1号代替即可第i天买1号外卖,如果第i-1天买的外卖为2,3号,那么我们就可以加上前一天买2,原创 2022-01-22 21:19:33 · 1258 阅读 · 0 评论 -
AtCoder Beginner Contest 211 C - chokudai
字符串DP此方法学习于这一位的博客chokudai 题解(at_abc211 C 简单dp)本博客仅用于学习记录。给字符串S,求其子序列为chokudai的方案数,将其记录在字符串string a中。dp[j][i]代表字符串S前i位中子序列a[1~j]的方案数。状态转移方程分为两种一、在我们遍历字符串S的时候需要对每个字符其匹配是否为a中的一种,若匹配成功则状态转移方程为:dp[j][i]=dp[j-1][i-1]+dp[j][i-1]含义为dp[j][i]=S串中之前一位匹配成功的a[1~j]原创 2021-07-25 15:19:49 · 518 阅读 · 2 评论 -
Atcoder Beginner Contest 163 D题题解
本题题解思路学自这位大佬ABC163(Atcoder beginner contest 163)部分题解 本博客仅用于记录自己学习思路,本质都是大佬的解法。题目链接abc163_d题目大意:给出N与K, N代表有N+1个数分别是1e100, 1e100+1,1e100+2,…,1e100+N. K代表任选K,K+1,K+2,N+1个数相加,求不同结果的总数mod 1e9+7的结果。因为每个数都有远大于N的前缀1e100,所以K+1个数相加的结果一定不同于K+2个数相加即相加的个数不同结原创 2021-06-12 15:01:46 · 204 阅读 · 2 评论