DP
fufck
这个作者很懒,什么都没留下…
展开
-
hdu 4747(DP?线性递推)
MexTime Limit: 15000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 3876 Accepted Submission(s): 1290Prob...原创 2018-09-04 13:47:14 · 608 阅读 · 0 评论 -
CF 1178 F1
题意:n个格子,编号1~n,n种颜色的油漆 ,编号1~n,每次依次选第i种颜色并将一段区间内全部涂成颜色i,区间内颜色被覆盖,可以涂色的前提是这一区间是相同的颜色,所以你可以认为最初n个格子全是白色。问有多少种涂色方式形成最终的颜色分布。思路:笛卡尔树DP从小到大操作,对于一个1他染的染色可能是红色的一段,所以可以分成左右两段分开考虑,最后乘起来即可。#include<bi...原创 2019-08-18 15:46:04 · 197 阅读 · 0 评论 -
2019牛客暑期多校训练营(第十场)J Wood Processing 斜率DP or 分治DP
题意:n块矩形,问你合并成K块,切掉的面积最小是多少思路1:斜率DP首先按照高度从小到大排序F[I][J]表示前i块矩形,划分成J块的最小代价。则F[I][J]=min(F[I][J],F[K][J-1]+W(K+1,I))W(i,j)表示把i到j这些合并一起的代价,sum[i]-sum[k]- h[k+1]*(sumw[i]-sumw[k]).最后整理可得如下形式...原创 2019-08-18 15:20:10 · 173 阅读 · 0 评论 -
洛谷 2511 [HAOI2008]木棍分割
题意:如题思路:首先二分枚举最大的长度。 dp[i][j]表示前一个木棍,切了j刀符合条件的方案数。 dp[i][j]+=dp[k][j-1] (sum[i]-sum[k]<=ans) 这个转移可以用前缀和维护。 状态总共O(n*m),转移O(1)#include<bits/stdc++.h...原创 2019-08-18 14:36:02 · 307 阅读 · 0 评论 -
数位DP 做题小结
HDU 4507题意:不满足条件的数字的平方和思路:DP[pos][num][val] 表示做到第pos位,各个数字和%7=num,整个数字%7=val的合法数字平方和是多少。#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define dep(i,a,b) for(int i=b;...原创 2019-08-16 23:34:53 · 112 阅读 · 0 评论 -
BZOJ 4244 邮戳拉力赛
题意:思路:参考博客https://blog.csdn.net/forever_shi/article/details/84931438/************************************************************** Problem: 4244 User: fufck Language: C+...原创 2019-08-18 15:58:46 · 138 阅读 · 0 评论 -
CF1110 D. Destroy the Colony (DP)
题意:给你一串数字,问你最多有多少个[x,x+1,x+2]或者[x,x,x]这样的思路:用DP[i][j][k]表示有j个[x-1,x,x+1],还有k个[x,x+1,x+2]的最多三元组。dp[i][k][l] = max(dp[i][k][l], dp[i - 1][j][k] + (Sum[i] - j - k - l)/3 + l) ;一开始先加上l表示多了l个[x,x+1...原创 2019-04-08 16:10:32 · 109 阅读 · 0 评论 -
CF 1144 G Two Merged Sequences(贪心 or DP)
参考博客:https://www.luogu.org/problemnew/solution/CF1144G思路:用dp[i][0]表示ai在递增序列中时,递减序列最小元素(最后一个元素)的最大可能值。用dp[i][1]表示ai在递减序列中时,递增序列最大元素(最后一个元素)的最小可能值。转移的时候就是:dp[i][0]可能由a[i-1]和dp[i-1][0]的较大值dp[...原创 2019-04-08 15:01:03 · 272 阅读 · 0 评论 -
CF 1093 F Vasya and Array
题意:给出一段长度为n的整数序列,一个正整数k,一个正整数len,序列中的所有数均在1~k之间,或者等于−1。如果没有长度大于len的连续相同数字则该数段是好的。可以将-1改为1~k之间的整数,将该数列变为好的,求出方案数,对998244353取模。思路:F[i][j]表示第i个位置填数字j的方案数。S[i]表示填完前i个位置的方...原创 2019-03-24 15:26:02 · 204 阅读 · 0 评论 -
PTA L3-020
题意:给定一个全部由小写英文字母组成的字符串,允许你至多删掉其中 3 个字符,结果可能有多少种不同的字符串?思路:dp[i][j]表示做到第i个字符删除j个字符不重复的状态数,如果不考虑重复字符串:dp[i][j]=dp[i-1][j-1]+dp[i-1][j]重复的个数为:X_ _X,这种状态,删除前三位与删除后三位是同一种状态X_X,这种状态,删除前两位与删除后两位...原创 2019-03-24 15:24:40 · 183 阅读 · 0 评论 -
gym 102001 J. Future Generation
题意:给你n(n<=15)个串(len<=15),找出严格递增的n个子串使其长度之和最大思路:递推型DP,F[I][J]记录做到第i个串,当前获得的总长度为J,其字典序最小的(第i个串中)子串#include<bits/stdc++.h>#include<tr1/unordered_map>#include<bits/stdc++.h>...原创 2019-03-11 16:19:40 · 436 阅读 · 0 评论 -
CF 1079 C Playing Piano (Round #522 Div. 2)
补坑:两个小时写的构造法 //#include<iostream>//#include<cmath>//#include<cstdlib>//#include<cstdio>//#include<algorithm>#include<bits\stdc++.h>using namespace std;...原创 2018-11-19 18:58:58 · 294 阅读 · 0 评论 -
ZOJ 3747 Attack on Titans(DP+思维)
#include<iostream>#include<cstring>#include<cmath>#include<cstdlib>#include<cstdio>#include<algorithm>#include<string>#include<map>#i原创 2018-10-29 20:03:58 · 285 阅读 · 0 评论 -
BZOJ 1933 Bookcase 书柜的尺寸
DescriptionTom不喜欢那种一字长龙式的大书架,他只想要一个小书柜来存放他的系列工具书。Tom打算把书柜放在桌子的后面,这样需要查书的时候就可以不用起身离开了。显然,这种书柜不能太大,Tom希望它的体积越小越好。另外,出于他的审美要求,他只想要一个三层的书柜。为了物尽其用,Tom规定每层必须至少放一本书。现在的问题是,Tom怎么分配他的工具书,才能让木匠造出最小的书柜来呢? Tom很...原创 2018-10-29 19:30:28 · 96 阅读 · 0 评论 -
HDU 3092 Least common multiple(完全背包+思维)
题目链接题目大意:给你一个数n,你要将它分成若干数字的和,使其的lcm最大,并且对p取模思路:有一个很显然的性质:分成的若干个数字的必定互质。之后就是完全背包问题了。F[I]表示和为I的得到的最大lcm,F[I]=max(F[I-prime[j]*k]*k*prime[j])因为F[I]的值可能超过long long范围,我们就对其取一个log,记为数组DP【】#include&...原创 2018-09-05 23:10:51 · 194 阅读 · 0 评论