DP
文章平均质量分 50
Peppermint__
这个作者很懒,什么都没留下…
展开
-
POJ 3186 Treats for the Cows
题目链接第一个区间dp思路 : 我们从中间开始拿,作为年份是n的情况一直到1dp[ i ] [ j ] 代表从第i件拿到第j件的最优解,状态转移方程 dp[i][i+len] = max( (n-len)*d[i] + dp[i+1][i+len] , (n-len)*d[i+len] + dp[i][i+len-1] );#include using nam原创 2017-03-12 16:28:58 · 251 阅读 · 0 评论 -
hdu 3664 DP 递推
思路:dp[i][j] 表示序列长度是i的情况下,k-value 是j 的排列数。j可以通过上一层的两种状态转移而来。一是上一层已经是j的,只能在最后插入或者找ai>i的置换。二是上层是j-1的,那么可以找出ai<=i的进行置换,一共是i-(j-1)种。递推关系式是dp[i][j] = dp[i-1][j]*(j+1) + dp[i-1][j-1]*(i-j);#include <...原创 2018-04-25 20:04:37 · 318 阅读 · 0 评论 -
HDU 3652 数位DP
首先知道一个定理: (a+b)%m = (a%m+b%m)%m;思路单独拿出一位来看,是否能被13整除或者从cnt到该位有没有出现出13整除量使用mod记录,是否出现过13用have记录,have==1是前一位是1,have==2,已经出现过13.#include <iostream>#include <algorithm>#include <cstring>...原创 2018-04-13 21:58:27 · 233 阅读 · 0 评论 -
hdu Building Shops DP 递推
Building ShopsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1863 Accepted Submission(s): 665Problem DescriptionHDU’s n classrooms are on ...原创 2018-04-13 20:36:52 · 205 阅读 · 0 评论 -
FZU 2109 mountain number 数位dp
思路:所有的数位dp长一个模样。考虑一下,在某一位上的往下递归,可能和哪几个条件有关。1.位数2.前一位的值3.当前是奇数位还是偶数位。* 注意前导零的时候后,默认pre是最大值9。根据数位dp模板即可写出#include <cstdio>#include <iostream>#include <algorithm>#include <cstring...原创 2018-04-13 20:28:30 · 194 阅读 · 0 评论 -
51Nod 1007 正整数分组 递推 DP
题目链接思路:问题是:将所有的正整数分为两组,使得两组的差最小。再将问题转化一下。在使用n个数,分为两组的的所有情况下的差的最小值。dp[i][j]代表用了前i个数,j这个差有没有出现过。那么n个数分为两组的差的全部情况可以有num[n]和dp[n-1][0-maxn]推出。#include <bits/stdc++.h>using namespace std;const in...原创 2018-04-13 19:47:17 · 203 阅读 · 0 评论 -
51Nod 1009 1042 数位DP
题目链接 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。 例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。 Input 输入N(1 <= N <= 10^9) Output 输出包含1的个数 Input示例 12 Output示例 5思路: 初学数位dp第二题。原创 2018-03-31 17:52:58 · 171 阅读 · 0 评论 -
51Nod LCS 最长公共子序列 打印路径
题目 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。 Input 第1行:字符串A 第2行:字符串B (A,B的长度 <= 1000) Output 输出最长的原创 2018-03-31 17:14:26 · 260 阅读 · 0 评论 -
LeetCode 139. Word Break 字符串 DP
Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words. You may a...原创 2018-02-28 13:24:36 · 308 阅读 · 0 评论 -
LeetCode 72. Edit Distance 115. Distinct Subsequences 字符串 DP
72. Edit Distance Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.) You have the following 3 operati...原创 2018-02-28 11:03:00 · 168 阅读 · 0 评论 -
蓝桥杯 出栈顺序 DP
看到大神们都是卡特兰数,不懂。。只能用dp的思想写一下#include using namespace std ; int main(){ int f[20]; memset( f,0,sizeof f ) ; f[0] = f[1] = 1; f[2] = 2; f[3] = 5; for ( int i=4; i<=16; i++ ) for原创 2017-05-02 19:59:32 · 517 阅读 · 0 评论 -
HDU 2089 不要62 数位DP
题目:给定范围,求这个范围内不含有4 和 62 的数字有多少个。两种方法第一种方法是dfs搜索,顺便记忆化一下,也是数位dp的模板#include #include #include #include using namespace std; int line[10]; int dp[10][2]; int dfs( int len, int pre,int f原创 2017-05-02 19:56:15 · 257 阅读 · 0 评论 -
UVALive - 5088 Alice and Bob's Trip 树形DP
第一个树形DP,做题的#include using namespace std; const int N = 500500; const int inf = 0x3f3f3f3f; struct node { int v,w; node () {}; node ( int vv,int ww ) {v = vv; w = ww; }};int n,l,r;int dp原创 2017-04-18 14:24:19 · 282 阅读 · 0 评论 -
Bing it UVALive - 4764 DP
题目: 对于第n张牌,它的最大得分的bing的位置来源于两种情况: 1 上一张(得分只能递增) 2 相同值得最近位置 (可再次加分) #include using namespace std; const int N = 1e5+10; int last[N],dp[N]; int main(){ int n,num; while( cin>>n )原创 2017-04-28 16:48:34 · 356 阅读 · 0 评论 -
Dima and Salad CodeForces - 366C 背包DP
#include #include using namespace std;const int N = 1e4+10; const int inf = 1e8; int dp[N],dp2[N]; int a[110],b[110];int n,k; int main(){ int num; scanf("%d%d",&n,&k); for ( int i=1; i原创 2017-03-12 16:51:12 · 298 阅读 · 0 评论