动态规划
文章平均质量分 50
while WA er
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
670 测温 单调队列 [代码源][namomo spring camp]每日一题div1
一道DP题目可以dp[i][j]dp[i][j]dp[i][j]表示到第iii天的温度为jjj的连续的天数。明显jjj是一个单调的,可以单调队列搞一搞//acmer mxc#include<bits/stdc++.h>#define mst(s,x) memset(s,x,sizeof(s));#define sr(x) scanf("%lld",&x); #define sr2(a,b) scanf("%d%d",&a,&b); #define sr3(.原创 2022-04-13 14:27:21 · 304 阅读 · 1 评论 -
668 体育节 区间DP [代码源][namomo spring camp]每日一题div1
稍微讲一下思路先按照大小排序,这明显跟顺序没关系。而后如果我们已经有了两个点了,现在要把第三个点加进去如果加到中间的花,发现当前最大最小值没有改变。加到哦湖面发现最大值改变了,如果加到中间我们考虑可以先加入左边第一个圆点,再加第一个三角,再加第二个圆点比现价左边第一个圆点,再加第二个圆点,再加中间的三角肯定来的更优。那么意味着我们是不是每次都要选择一个临近的点加入而不能采取插入的形式。最后再考虑 1 4 8 10 14这肯定线加入8和10 而后考虑到4和14的距离都是4,但是4左边有一个.原创 2022-04-13 13:47:12 · 1099 阅读 · 0 评论 -
P2602【DFS】【数位DP】【记忆化】数字计数
刷就完事了here要求a-b每个数字出现的个数,将问题转化思路为求0-b - 0-a-1即可。我们将数值转化为数位存入num数组比如我们要求i的出现的次数,我们每次都要记录几个变量。1.当前的位置2.上一位以及之前位是否小于num[len] 这样的话就可以约束我们下边枚举的变量了。3.前置是否是0,如果前置全是0,那么我们在统计现在这一位出现的0的情况就要分开讨论了。4.sum 我们要记录这个数字出现的次数两个int类型,两个bool类型。开了dp[N][2][N][2]的数组。原创 2021-08-08 11:53:57 · 165 阅读 · 0 评论 -
P1868【动态规划】饥饿的奶牛 + 线性动态感悟
here感觉线性动态规划。就如果有转移状态就像是加了快速通道可以直接对下一个状态进行改变,否则就延续前面的状态。 感觉对这一类的清晰了不少。dp[i]记录前n块已经被吃掉的草坪数。dp[i]=max(dp[i],dp[j]+i-j+1)我们不关心怎么得到的j我们只知道,在最后一步可以由j跳到i的地方并且记录值得变化。动态规划的精髓就是我们不关心前一状态。我们从最终状态出发寻找几个参量可以表示最终状态用来作为我们的状态。由倒数第二个状态向最终状态的转移来确定我们的转移方程。从我们的式子我们确定边界原创 2021-08-08 10:54:26 · 251 阅读 · 0 评论 -
P1091【动态规划】[NOIP2004 提高组] 合唱队形
非常巧妙的,一个上升子序列DP + 一个枚举中间点向下DP的题目here// god with me//#pragma GCC optimize(1)//#pragma GCC optimize(2)//#pragma GCC optimize(3,"Ofast","inline")#include <bits/stdc++.h>#include <cmath>#include <math.h>#include<cstdio>#includ原创 2021-08-08 10:16:11 · 138 阅读 · 0 评论 -
P1441【DFS】【动态规划】砝码称重
先用深度优先搜索枚举情况,当被选择了n个节点并且m个被丢弃的时候,这时候进行dp判断是否满足最优,是否可以对答案进行更新。here// god with me//#pragma GCC optimize(1)//#pragma GCC optimize(2)//#pragma GCC optimize(3,"Ofast","inline")#include <bits/stdc++.h>#include <cmath>#include <math.h>#原创 2021-08-08 09:48:58 · 203 阅读 · 0 评论 -
P4059【动态规划】[Code+#1]找爸爸
有个位置,写错了一个下标,卡了半个小时。人裂开了here第一次过DP蓝题 虽然写了一个小时,但过了还是挺开心的。// god with me//#pragma GCC optimize(1)//#pragma GCC optimize(2)//#pragma GCC optimize(3,"Ofast","inline")//#include <bits/stdc++.h>#include <bits/stdc++.h>#include <cmath>原创 2021-08-05 10:12:53 · 176 阅读 · 0 评论 -
P1541【动态规划】[NOIP2010 提高组] 乌龟棋
here怎么说呢,一开始总觉得可以把格子也可以划进转移方程。但是四种卡片也得划进转移方程吧。但是就编译都过不了,开的内存空间太大了,就说明有一定的问题。四种卡片的状态可以去掉么?想了想好像并不可以,因为去掉了在中间进行dp的时候就不能保证卡片的状态了。那怎么办,这时候看到了保证卡片加起来就等于格子的总长度。好的 格子可以去掉了。①初始状态有了,就是四张卡片数。②转移方程就是子问题的状态转移过来嘛,四条路径而已,转移有了dp[i][j][k][l]=max(dp~,dp[i-1][j][k][l原创 2021-08-04 18:50:11 · 154 阅读 · 0 评论 -
【动态规划专项训练】
P1095入口一个分类讨论就可以了。我们直接用两个量来记录维护用闪现和不用闪现的速度。每次都更新S1这样才可以保证最优解。#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long//#define int long long//#define double long double//#define double long long#define re int//#define void inline原创 2021-08-03 10:01:57 · 118 阅读 · 0 评论
分享