![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
一所悬线
这个作者很懒,什么都没留下…
展开
-
首尾相连数组的最大子数组和
推荐博客:https://blog.csdn.net/lin_disguiser/article/details/50821885当时想到的是第一个思路,但不如第二个好,第一个时间复杂度比第二个要高。#include <iostream>#include <cstdio>using namespace std;#define inf 0x3f3f3f3f#...原创 2018-12-16 16:31:40 · 179 阅读 · 0 评论 -
D. GCD Counting 树形dp
题意:一棵树,每个节点有权值,找一条gcd不唯一的最长路,输出长度。思路:gcd不唯1,即两个数有相同的素因子,dp[i][j]就表示以i个节点通过这个数的第j个素因子最长的子链,然后路的长度就是在遍历的时候选两个最长的相加,dfs遍历一遍树不断更新答案。#include<bits/stdc++.h>using namespace std;int dp[200005]...原创 2019-01-14 21:36:10 · 257 阅读 · 0 评论 -
筱玛的字符串
https://ac.nowcoder.com/acm/contest/342/E题意:给一个匹配的括号串,首先选择一个区间(可以不选),让字符反转,然后隐藏其中一些位置,变成?,让你还原,问可以还原多少种情况。思路:dp[i][j][k],i表示处理的位置,j表示(比)多几个,k表示当前位置的状态,1表示没有进行反转,2表示正在进行反转,3表示已经完成反转。转移的时候对不同字符根据不同状...原创 2019-01-13 20:59:53 · 198 阅读 · 0 评论 -
String painter HDU - 2476
题意:给两个字符串,通过涂色把第一个串构造成第二个串,每次将一个连续区间涂成一种颜色,后涂会覆盖之前的。思路:之前做过类似的是相当于在空串上构造第二个串,现在类似的可以同样进行那个操作,然后再一次区间dp,去求最小次数。在得到了一个s2串的相关dp数组后,我们考虑s1串,如果s1串和s2串在某一个点相等了,即表示这一点可以不用特意去刷一次,那么便可以由这一点来分成两个区间。如果用 an...原创 2019-01-13 20:32:06 · 169 阅读 · 0 评论 -
Rabbit的工作(1) dp
题意:给你n和k,和一个长度为n的字符串,字符串中的0表示休息,1表示工作,连续工作会损耗连续的体力值,从1开始,但是休息后就重新计算体力值,一共最多损耗k点体力值,求解最多工作多少天 题解:动态规划,状态定义为,dp[j][k]表示在第i天之前工作j天,并且已经连续工作k天的情况下的最小体力花费,最后扫一遍,保存满足条件的j的最大值即可,转移过程很好理解。 https://ac.nowcod...原创 2019-01-11 20:36:49 · 165 阅读 · 0 评论 -
K - Count the string HDU - 3336
https://cn.vjudge.net/problem/HDU-3336题意:求一个字符串中所有前缀在这个字符串中出现的总次数(可重叠)。思路:利用next数组dp一遍,然后求一遍dp的总和。#include<iostream>#include<stdio.h>using namespace std;#define ll long long#def...原创 2018-12-26 11:41:01 · 182 阅读 · 0 评论 -
The Battle of Chibi HDU - 5542
https://cn.vjudge.net/problem/HDU-5542题意:求从长度为n的序列中最多能找出长度为k的严格递增子序列的个数。思路:dp[i][j],表示第i个数作为子序列的第j个数的序列有多少个。 for (int i = 0; i < n; i++) { dp[i][1] = 1; } ...原创 2018-12-25 20:34:50 · 125 阅读 · 0 评论 -
D. Easy Problem dp
题意:给你一个字符串,让你删除某些字符使得这个串的所有子串不包括hard,删除每个字符有花费,求一个最小花费。思路:dp[i][j]表示到第i个字符可以组成hard的前j个字母,然后对每一个字符,递推转移一下。#include <iostream>#include <cstdio>#include <cstring>#define ll long...原创 2018-12-29 11:33:58 · 187 阅读 · 0 评论 -
P4170 [CQOI2007]涂色 区间dp
假设你有一条长度为5的木版,初始时没有涂过任何颜色。你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为5的字符串表示这个目标:RGBGR。每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色。例如第一次把木版涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标。用尽量少的涂色次数达到目标。很简单的区间dp,dp[i][j]由dp[i][...原创 2018-12-27 21:00:51 · 129 阅读 · 0 评论 -
P2530 [SHOI2001]化工厂装箱员
状态:f[i][j][k][m] : 前i个物品 当前手中有j个"A" k个"B" m个"C"时的最小卸货次数很明显对于第i个物品可以1:)只取出来 暂时不装进去 前提就是当前手中货物数量<102:)取出来后 装进去 没有前提所以转移方程就出来了:f[i][j][k][m] = f[i-1][j-1][k][m] if(ob[i]=='A' && j)...原创 2019-03-06 22:15:39 · 134 阅读 · 0 评论