dp
文章平均质量分 50
郭晋龙
压力面前保持优雅
展开
-
选课 (树形dp)
题目:思路分析:dp[i][j] 代表以i为根的树上选j个课程的最大得分代码实现:#include<iostream>#include<cstdio>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<list>#include<set>#.原创 2021-12-07 12:48:56 · 2251 阅读 · 0 评论 -
二叉苹果树(树上背包dp)
题目:思路分析:树根已经确定为1然后son数组为该节点有几个子节点f[u][j] //表示以u节点为根的树,保留j个节点后可以保留的最大苹果数状态f[u][j],可以由f[u][j-k]+f[v][k]+a[u][v]转移过来。因此状态转移方程为:f[u][j]=max(f[u][j],f[u][j-k]+f[v][k]+a[u][v]);1)f[][]数组一开始要初始化为负无穷。这么初始化是为了保证子节点只能由其父节点转移而来。最后的结果为f[1][q+1]。因为f[u][j]原创 2021-12-07 11:21:00 · 2337 阅读 · 0 评论 -
树上子链(树形dp 树的直径)
题目:思路分析:可以拿树的直径来解决也可以树上dp代码实现:树的直径#include<iostream>#include<cstdio>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<list>#include<set>#inclu.原创 2021-12-07 10:29:04 · 2211 阅读 · 0 评论 -
没有上司的舞会(树形dp)
题目:思路分析:明显的一道树上dp的问题代码实现:#include<iostream>#include<cstdio>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<list>#include<set>#include<iomanip.原创 2021-12-06 22:50:39 · 90 阅读 · 0 评论 -
P3478 [POI2008]STA-Station(换根dp)
先选1为根节点跑一遍记录dfs找出其所有节点的深度dp i 是以i 为根所有节点的深度之和我们可以对i的儿子以o1的时间计算出以其儿子为根的所有节点深度之和dp[son]=dp[fa]-num[son]+n-num[son]num是i子树的节点总数const int MAX=1e6+10;ll dp[MAX];int cnt;int head[MAX];struct E{ int to,next,w;}e[MAX<<1];void add(i...原创 2021-10-21 01:52:25 · 146 阅读 · 0 评论 -
P2014 [CTSC1997]选课(树形dp)
const int MAX=1010;int dp[MAX][MAX];struct E{ int to,next,w;}e[MAX];int head[MAX];int cnt;int s[MAX];int n,m;void add(int x,int y){ e[cnt].to=y; e[cnt].next=head[x]; head[x]=cnt++;}void dfs(int u){ for(int i=head[u];~i;i...原创 2021-10-20 21:03:06 · 116 阅读 · 0 评论 -
P2015 二叉苹果树(树形dp)
我们定义dp[i][j]为以i为根的子树上存留j条边的最多苹果树状态转移方程是:dp[u][j]=max(dp[u][j],dp[u][j-k-1]+dp[v][k]+e[i].w);const int MAX=1010;int dp[MAX][MAX];struct E{ int to,next,w;}e[MAX];int head[MAX];int cnt;int s[MAX];void add(int x,int y,int w){ e[cnt]...原创 2021-10-20 20:47:59 · 106 阅读 · 0 评论 -
P1855 榨取kkksc03(二维费用背包问题)
int main(){ int n,m,t; cin>>n>>m>>t; for(int i=0;i<n;i++){ cin>>a[i]>>b[i]; } for(int i=0;i<n;i++){ for(int j=m;j>=a[i];j--){ for(int k=t;k>=b[i];k--){ ...原创 2021-10-20 19:08:28 · 88 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(P1833 樱花+混合背包+二进制优化)
看题 我们可以知道这是一个混合背包的题目什么是混合背包呢?其实就是01背包+多重背包+完全背包的混合体我们只需要处理对应的细节就行但是我们要对多重背包进行二进制的优化处理其中多重背包可以和01背包进行合并const int MAX=100010;int a[MAX];int b[MAX];int c[MAX];int dp[MAX];int main(){ int a1,a2,a3,a4; scanf("%d:%d",&a1,&...原创 2021-10-20 19:01:34 · 253 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(德玛西亚万岁)
题目描述德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土地标记为0表示为高山峻岭或者深海湖泊,英雄们无法在其中站立,只有标记为1的土地才能容纳一个英雄。德玛西亚的英雄们战斗时有一个特点,他们不希望队友站在自己旁边显得很暧昧。请问最多能有多少种安排德玛西...原创 2021-10-20 13:22:30 · 153 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(小G有一个大树)
题目描述小G想要把自己家院子里的橘子树搬到家门口(QAQ。。就当小G是大力水手吧)可是小G是个平衡性灰常灰常差的人,他想找到一个这个橘子树的平衡点。怎么描述这棵树呢。。。就把它看成由一个个节点构成的树吧。结点数就代表树重。输入描述:多组数据输入输出,第一行包含一个整数n(3<=n<=1000)代表树的结点的个数以下n-1行描述(1-n)节点间的连接关系。输出描述:输出两个个整数 x,num 分别代表树的平衡点,和删除平衡点后最大子树的结点数(如果结点...原创 2021-10-19 22:40:55 · 390 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(美丽的项链)
题目描述妞妞参加了Nowcoder Girl女生编程挑战赛, 但是很遗憾, 她没能得到她最喜欢的黑天鹅水晶项链。于是妞妞决定自己来制作一条美丽的项链。一条美丽的项链需要满足以下条件:1、需要使用n种特定的水晶宝珠2、第i种水晶宝珠的数量不能少于li颗, 也不能多于ri颗3、一条美丽的项链由m颗宝珠组成妞妞意识到满足条件的项链种数可能会很多, 所以希望你来帮助她计算一共有多少种制作美丽的项链的方案。输入描述:输入包括n+1行, 第一行包括两个正整数(1...原创 2021-10-19 21:57:48 · 226 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(迷宫)
题目描述有一个n×m的网格地图,每个点有个值aijaij,现在牛牛要从(1,1)走到(n,m)(1,1)走到(n,m),他可以往右边或者往下走,每次到一个点会获得当前的点权值,并将权值和mod1e4+71e4+7,当牛牛从不同方式走到(n,m)(n,m)的时候能获得多少种权值和?输入描述:第一行输入正整数n,m(n,m≤100)n,m(n,m≤100)接下来nn行每行有mm个正整数,分别代表aijaij(aij≤109)(aij≤109)输出描述:...原创 2021-10-18 21:59:10 · 411 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(合并回文子串)
题号:NC13230时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。需要求出所有可能的C中价值最大的字符串,输出这个最...原创 2021-10-17 13:40:13 · 177 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(郊区春游)
郊区春游题解 讨论 查看他人的提交 我的提交题号:NC16122时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述今天春天铁子的班上组织了一场春游,在铁子的城市里有n个郊区和m条无向道路,第i条道路连接郊区Ai和Bi,路费是Ci。经过铁子和顺溜的提议,他们决定去其中的R个郊区玩耍(不考虑玩耍的顺序),但是由于他们的班费紧张,所以需要找到一条旅游路线使得他们的...原创 2021-10-14 20:19:37 · 343 阅读 · 0 评论 -
算法竞赛入门经典 每日一题(锁)
锁题解 讨论 查看他人的提交 我的提交题号:NC14732时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述106号房间共有n名居民, 他们每人有一个重要度。房间的门上可以装若干把锁。假设共有k把锁,命名为1到k。每把锁有一种对应的钥匙,也用1到k表示。钥匙可以复制并发给任意多个居民。每个106房间的居民持有若干钥匙,也就是1到k的一个子集。如果几名居民的钥...原创 2021-10-14 19:18:53 · 256 阅读 · 0 评论 -
2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)1006(快速幂+dp+后缀和)
Nun Heh Heh AaaaaaaaaaaTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1873Accepted Submission(s): 1031Problem DescriptionVasily Tadokorov is a stringologist. He thinks a string is frag...原创 2021-10-11 01:22:42 · 535 阅读 · 0 评论 -
概率dp总结
例题1:LOOPSTime Limit: 15000/5000 MS (Java/Others)Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 12305Accepted Submission(s): 4671Problem DescriptionAkemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl).Homura wants to...原创 2021-10-08 16:49:07 · 265 阅读 · 0 评论 -
求长度(Dijkstra+状压dp)
求长度题解 讨论 查看他人的提交 我的提交题号:NC15873时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述给定一幅n个点m条边的图和S个一定要经过的点,问从0号点出发,经过这S个点再回到0号点的最短路径长度是多少。输入描述:第一行一个整数T(T <= 2)表示数据组数。对于每组数据,第一行两个整数n,m表示点数和边数(1 <= ...原创 2021-10-07 15:57:58 · 125 阅读 · 0 评论 -
送外卖2(三进制状态dp+最短路)
送外卖2题解 讨论 查看他人的提交 我的提交题号:NC13252时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。一张nn个点mm条有向边的图上,有qq个配送需求,需求的描述形式为(si,ti,li,risi,ti,l...原创 2021-10-07 02:01:08 · 213 阅读 · 0 评论 -
最小总代价(状压dp)
最小总代价描述n个人在做传递物品的游戏,编号为1-n。游戏规则是这样的:开始时物品可以在任意一人手上,他可把物品传递给其他人中的任意一位;下一个人可以传递给未接过物品的任意一人。即物品只能经过同一个人一次,而且每次传递过程都有一个代价;不同的人传给不同的人的代价值之间没有联系;求当物品经过所有n个人后,整个过程的总代价是多少。格式输入格式第一行为n,表示共有n个人(16>=n>=2);以下为n*n的矩阵,第i+1行、第j列表示物品从编号为i的人传递到编号为j的人所原创 2021-10-07 01:18:24 · 199 阅读 · 0 评论 -
第23次CCF计算机软件能力认证(第四题) (100分)(状态压缩dp)
/**@Author: GuoJinlong*@Language: C++*///#include <bits/stdc++.h>#include<iostream>#include<cstdio>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<list>.原创 2021-10-05 14:19:51 · 290 阅读 · 0 评论 -
操作集锦(dp)
操作集锦比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述有一款自走棋有26种操作,每种操作我们都用a,b,c,d,...,x,y,za,b,c,d,...,x,y,z的符号来代替.现在牛牛有一个长度为nn的操作序列,他现在可以从里面拿出某些操作来组合成一个操作视频, 比如说操作序列是abcdabcd,那么操作视频就有a,b,c,d,ab,ac,ad...原创 2021-10-04 15:46:45 · 116 阅读 · 0 评论 -
2021牛客国庆集训派对day1 -Removal(动态规划)
Removal比赛主页 我的提交时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述Bobo has a sequence of integers s1, s2, ..., snwhere 1 ≤ si≤ k.Find out the number of distinct sequences modulo (109+7) after removing exactly m...原创 2021-10-02 18:16:35 · 164 阅读 · 0 评论 -
小游戏(动态规划)
小游戏比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述有一个长度为 n 的数组 a[i] , 每一步能拿走一个数,比如拿第 i 个数, a[i] = x ,得到相应的分数 x ,但拿掉这个 x 后, x+1 和 x-1 (如果有 a[j] = x+1 或 a[j] = x-1 存在) 就会变得不可拿(但是有 a[j] = x 的话可以继续拿这个 x )。求...原创 2021-09-29 21:50:09 · 154 阅读 · 0 评论 -
Anniversary party(树上dp)
Anniversary partyTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29105Accepted Submission(s): 9932Problem DescriptionThere is going to be a party to celebrate the 80-th Anniversary of the...原创 2021-09-27 21:05:45 · 124 阅读 · 0 评论 -
登山(dp)
登山五一到了,PKU-ICPC队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么?时间限制:5000内存限制:131072输入Line 1: N (2 <= N <= 1000) 景点数 Line 2: N个整数,每原创 2021-09-27 19:34:03 · 150 阅读 · 0 评论 -
LCS最长公共子序列 + LIS 最长递增子序列
最长公共子序列问题:思想:主要运用了dp动态规划//LCS问题string s1,s2;int dp[1010][1010];int main(){ cin>>s1>>s2; mms(dp,0); for(int i=1;i<=s1.length();i++){ for(int j=1;j<=s2.length();j++){ if(s1[i-1]==s1[j-1]) dp[i][j]=d原创 2021-09-24 17:52:55 · 75 阅读 · 0 评论 -
被3整除的子序列-NC21302(思维+dp)
被3整除的子序列题解 讨论 查看他人的提交 我的提交题号:NC21302时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除答案对1e9+7取模输入描述:输入一个字符串,由数字构成,长度小于等于50输出描述:输出一个整数示例1输入复制132输出...原创 2021-09-22 23:16:59 · 171 阅读 · 0 评论