动态规划
JiaJunH810
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NC21587:回文子序列计数(dp)
动态规划,牛客原创 2022-08-16 20:52:30 · 499 阅读 · 0 评论 -
CF:1667B. Optimal Partition(dp好题:线段树优化dp)
题目链接题面:题面:题面:题意:题意:题意:给定一个长度为n的数组,将其分成若干个连续的子数组。求每个子数组的价值之和的最大值。每个子数组的价值:对于s(l,r)=al+al+1+...+ars(l,r)=a_l+a_{l+1}+...+a_rs(l,r)=al+al+1+...+ar若s(l,r)>0,则价值为r−l+1若s(l,r)>0,则价值为r-l+1若s(l,r)>0,则价值为r−l+1若s(l,r)=0,则价值为0若s(l,r)=0,则价值为0若s(l,r原创 2022-05-21 18:36:04 · 509 阅读 · 0 评论 -
CF:1674 G. Remove Directed Edges
题目链接题意:给出有向无环图,删去若干条边,使得满足以下两个条件:(1)对于每一个结点,其出边比原来少,除非初始出边就为0;(2)对于每一个结点,其入边比原来少,除非初始入边就为0;操作后,选择一个点集S,S中的任意两个元素u,v都满足:u能到v或者v能到u。请得到最大的|S|题解:由于是个有向无环图。所以S中的点一定是从u能到v,而v到不了u。那么S集合一定是一条链上的所有点;发现了这个问题后就好写了,可以发现用dp做。状态表示:f[u]表示操作后以u为起点的最长链原创 2022-05-03 13:25:58 · 553 阅读 · 0 评论 -
CF:1633D. Make Them Equal(广搜+背包)
题目链接题意:有一个大小为n的整数数组a。最初,数组所有元素都为1.可以执行如下操作:选定一个i和任意的x(x>0)然后把ai=ai+[ai/x](向下取整)执行所有操作后,若ai==bi,那么你可以得到ci个金币。通过执行不超过k次的操作使得获得最大的金币数量。1->bi的最小操作数,用广搜得到。所以用广搜预处理1->1000的所有最小操作数,然后来一遍01背包即可。细节处理:由于k太大了,但是可以发现任意一个1->bi的操作数最多为20左右,所以最多操作数原创 2022-05-02 18:29:54 · 384 阅读 · 0 评论 -
CF533B Work Group(树形DP、)
题目链接状态表示:f[u][0/1],以u为根节点,有人数偶数(0表示)或奇数个(1表示)的最大权值这道题其实是状态只有两种的树上背包。但是第一次做这个题的时候。真的不会想到用树上背包来做,因为他又一个下属必须是偶数的限制条件在那里。就会感觉不能用背包。但没想到用初始化f[u][1]=负无穷,来防止了这种情况。这点就是这道题的精妙之处。通常状态下会将f[u][1]=a[u]初始化为该点的权值,f[u][0]=0初始化为空(即0);但是这样的话,之后转移的时候f[u][0]会从f[原创 2022-04-29 11:01:51 · 277 阅读 · 0 评论 -
CF855C Helga Hufflepuff‘s Cup(树形dp:用辅助数组来完成状态转移方程)
题目链接该题的状态表示挺好想的。就是f[i][j[k]表示以i为根的子树有k个最高值。其中j有三个状态:j=0时,表示i点的值为小于最高值j=1时,表示i点的值为等于最高值j=2时,表示i点的值为大于最高值初始状态下f[i][0][0]=k-1;f[i][1][1]=1;f[i][2][0]=m-k;(m表示有多少种颜色)但是在写状态转移的时候发现若正常的状态转移要有一些限制条件。比如:在u从v中转移过来是f[u][0][j]+=f[u][0][j-k]*(f[u][0.原创 2022-04-25 12:01:40 · 300 阅读 · 0 评论 -
CF82D Two out of Three(状态转移方程难表示)
题目链接洛谷:CF82D Two out of Three状态转移方程有点难想。看了题解才知道的。题解链接#include <bits/stdc++.h>using namespace std;typedef pair<int,int>PII;const int maxn=1050;int n;int a[maxn];int f[maxn][maxn];struct Node{ int d,v,x,y;};Node path[maxn][.原创 2022-04-25 09:47:00 · 261 阅读 · 0 评论 -
牛客NC13885:Music Problem(用bitset优化)
牛客NC13885:Music Problem题面:bitset<限定的长度> bit;bitset不用担心长度会爆,对于过长的数字,会自动截取限定的长度,所以初始的长度只要限定能用上的长度即可;那么对于bit|=bit<<x来讲相当于把之前各种的数都加一个x然后bit|=bit>>3600相当于把多余3600的那部分对3600进行取模,后再加到bit中;最后只要判断bit[3600]这个位置是否存在即可#include <bits原创 2022-02-03 22:37:24 · 804 阅读 · 0 评论 -
牛客:NC19158失衡天平(01背包的拔河问题)
该题有点像双塔DP,有待之后确认.牛客NC19158失衡天平题面:状态表示:f[i][j]:表示前i个物品中差值为j的最大重量.属性:Max状态计算:f[i][j]=max(f[i-1][j] , f[i][j+a[i]] + a[i] , f[i][abs(j-a[i])] + a[i]);三者的最大值初始化为负无穷因为初始状态f[i][j]的值不一定为0,而应该是一个不存在的值.所以应该是负无穷代码:#include <bits/stdc++.h>原创 2022-02-03 16:55:16 · 855 阅读 · 1 评论 -
TZOJ:2710过河(引入TZOJ:5996小凯的疑惑)
题目链接:TZOJ:2710过河TZOJ:5996小凯的疑惑y总的视频讲解:AcWing484过河(视频讲解)题面:动态规划:状态表示:f[x]表示到达第x位置所需踩到的最少石子数集合:最小值状态计算:可知对于每个x位置,都一定是前面的[S,T]的位置跳过来的.所以f[i]=min(f[i],f[j]+a[i])(i-T<=j<=i-S).但是这道题的L非常大.如果L<=10000的话,时间复杂度就可以过去.会发现,该题中M不大,也就是说如果原创 2022-02-02 15:11:15 · 721 阅读 · 0 评论 -
TZOJ 6721:levil的苹果树(树形dp)
题面样例输入:31 21 31 2 3样例输出:6题目中:采摘利益=两个苹果其中一个苹果的成熟值 * 两个苹果在苹果树上的距离;所以定义状态表示f[i]为以i为该苹果的成熟值时采摘利益最大的集合.那么如果求出了其余点距离i的最远距离lmax,那么f[i]=a[i]*lmax;所以该题就转换成了求树上每个点到其他点的最远距离.最后取个max就行了.这与AcWing1073树的中心写法几乎一样.然后讲一下二次扫描.用d1[i]和d2[i]数组分别记.原创 2022-01-30 18:19:34 · 425 阅读 · 0 评论 -
(牛客每日一题)NC20241:扫雷MINE(计数DP)
题意:扫雷游戏。但面积只有n行2列,第二列给出了数字,代表周围(仅限第一列中)有几个雷。在第一列中填雷,使得第一列中雷的数量满足第二列对应的数字。求有多少种摆放雷的方案数。题解:用dp来做。f[i][2][2][2],i代表第i个位置,三个2分别表示,i位置前面,i位置,i位置后面是否有雷,有雷就是1,无雷就是0。初始化:初始化第零个位置,当第一个位置雷数量为0时f[0][0][0][0]=1;当第一个位置雷数量为1时f[0][0][0][0]=f[0][0][0][1]=1;原创 2021-11-19 12:41:25 · 3338 阅读 · 0 评论 -
(牛客每日一题)NC216041:GPA--动态规划
f[i][j]表示前i个课程中有j个课程能不哭的最小和之后在从n到0遍历一下,如果f[n][j]不为INF,那么说明这个地方有被赋值过,那么此时不哭的数量最大,直接break然后输出即可#include <bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;const int maxn=4005;int n;int a[maxn],b[maxn];int f[maxn][maxn];int main(){原创 2021-11-05 14:18:00 · 197 阅读 · 0 评论 -
Mio visits ACGN Exhibition——计数DP+滚动数组(江西省ICPC省赛)
计数DP题,求方案数。状态转移方程为:dp[i][j][k],表示第i行,第j列,恰好有k个0时的路径数量;可知0<=k<=i+j-1,因为最多走i+j-1个方格,所以对应的0的数量最多也就是i+j-1;如果数据不大的话,状态转移方程:dp[i][j][k],表示跑到第i行,第j列恰好有k个0时的路径数量当(i,j)==0时,dp[i][j][k]=dp[i-1][j][k-1]+dp[i][j-1][k-1]当(i,j)==1时,dp[i][j][k]=dp[i-1]原创 2021-11-17 18:18:19 · 247 阅读 · 0 评论
分享