动态规划
文章平均质量分 66
dp
Looy_cai
愿你能够
成为优秀的人
展开
-
P1484 种树(反悔贪心,priority)
LINK题目:思路:反悔贪心,将所有坑都放在优先队列中。先从值最大的开始贪,在贪的时候还要记录它的左右,因为存在一种情况,如:处理左右位置不可选的坑:代码:#include<bits/stdc++.h>using namespace std;#define ll long long const int N=5e5+10;const int inf=0x3f3f3f3f;struct node{ int a,pos; //priority_queue中自定义的比原创 2022-04-14 20:14:13 · 551 阅读 · 0 评论 -
Cities(区间dp)
LINK题目样例:示例1输入284 3 1 2 1 1 3 351 2 3 2 1输出32大致题意:给定n个城市,每个城市都有一个数字,你可以使用一次魔法把相同且连续的一串数字变成任意一个数字,问最少使用多少次魔法能使所有城市变成同一个数字。区间dp模板:for(int len=2;len<=n;len++)//区间长度 for(int i=1;i<=n;i++){//枚举起点 int j=i+len-1;//区间终点 if(j>n)break;原创 2022-04-13 21:13:38 · 276 阅读 · 0 评论 -
Serval and Rooted Tree(树形dp)
LINK题目:样例:样例解释:题意:现有一棵树(根节点为1),树上每个结点上有一个flag值(flag=0 :表示这个点的权值是所有子节点权值中的最小值;flag=1:表示这个点的权值是所有子节点权值中的最大值)。有k个叶子节点,可以给每一个叶子节点安排1——k中的值且每个值只能放置一次。问:根节点值的最大值是多少。思路:想复杂了,看了一下大神们的题解,只能说:nb哇!!!运用树形dp。dp[i]:i结点值最大时需要叶子的数量;在每个叶子节点上dp[叶子]=1(只要叶子自己原创 2022-03-20 00:16:02 · 989 阅读 · 0 评论 -
数位小孩(数位dp)
差一点点就提交的代码 值得纪念一下LINK思路:先处理f[i][j][0]和f[i][j][1]先处理f[i][j][0]和f[i][j][1]先处理f[i][j][0]和f[i][j][1];f[i][j][0]:有i位,最高位为j满足相邻两个数和位素数且不出现1的个数;f[i][j][0]:有i位,最高位为j满足相邻两个数和位素数且不出现1的个数;f[i][j][0]:有i位,最高位为j满足相邻两个数和位素数且不出现1的个数;f[i][j][i]:有i位,最高位位j满足相邻两个数和位素数且原创 2022-02-10 18:09:28 · 452 阅读 · 1 评论 -
cf 722 C. Parsa‘s Humongous Tree(树形dp)
C. Parsa’s Humongous TreeParsa has a humongous tree on n vertices.On each vertex v he has written two integers lv and rv.To make Parsa’s tree look even more majestic, Nima wants to assign a number av (lv≤av≤rv) to each vertex v such that the beauty of P原创 2021-05-25 13:15:22 · 347 阅读 · 1 评论