DP
文章平均质量分 82
老焦哥
这个作者很懒,什么都没留下…
展开
-
动态规划入门之从递推到状态转移
在了解动态规划前,不妨先看看题目http://acm.hdu.edu.cn/showproblem.php?pid=2046。截图如下.问你当n为任意数(n>0)时, 骨牌的铺放方案有几种?咱可以先从归纳法试试,列举出可能出现的解。当n=1时,只有一种铺放方案,即 |当n=2时,有两种方案,即 || 或 =当n=3时,有||| ,|= ,=| 当n=4时,有||||, |=|, =||, ||=, ==当n=5时,有。。。8种,我不写了。。看...原创 2020-07-17 18:01:03 · 419 阅读 · 0 评论 -
FZU 2120-数字排列(状压DP)
S得到了一个数,他认为相邻位上的数字与数字之间会产生不良影响,比如123,1和2之间产生一个不良影响值,2和3之间产生一个不良影响值。现在他想调整这个数每位的数字的顺序,使得最终得到的数的总的不良影响值最小,且没有前导0。Input输入数据的第一行为T表示有T组数据。每组数据先输入一个整数n(0Output对于每组数据输出一行一个数,表示最小的不良影响值。原创 2017-03-21 16:48:02 · 295 阅读 · 0 评论 -
FZU-2172 DP
大师兄在取经途中迷上了ACM-ICPC,稍不留神,师傅就被妖怪抓走了。 大师兄并不着急去救师傅,在虐这道简单题: 有两个字符串A和B,每一次可以选择以下操作中的一种,只对字符串A进行操作,用最少的操作使得字符串A与字符串B相等:在字符串A中插入一个字符;在字符串A中删除一个字符;将字符串A复制,得到字符串A的一个拷贝C,将字符串C接在字符串A后面。Input原创 2017-03-13 20:19:54 · 259 阅读 · 0 评论 -
FZU-2218 Simple String Problem(状压DP)
Problem DescriptionRecently, you have found your interest in string theory. Here is an interesting question about strings.You are given a string S of length n consisting of the first k lowercase原创 2017-03-14 19:43:59 · 346 阅读 · 0 评论 -
zoj 3956-Course Selection System(背包)
Course Selection SystemTime Limit: 1 Second Memory Limit: 65536 KB There are n courses in the course selection system of Marjar University. Thei-th course is described by two values:原创 2017-04-09 20:38:48 · 324 阅读 · 0 评论 -
Fzu 2234 牧场物语(DP)
Problem 2234 牧场物语Accept: 148 Submit: 722Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description小茗同学正在玩牧场物语。该游戏的地图可看成一个边长为n的正方形。小茗同学突然心血来潮要去砍树,然而,斧头在小茗的右下方。小茗是个讲究效原创 2017-03-17 11:30:28 · 764 阅读 · 0 评论 -
fzu-2116 买糖果(背包)
递推方程:dp[i+1][j+y] = max(dp[i+1][j+y],dp[i][j]+x); dp[i][j] 中 i 表示选了 i 个糖果罐中有第二种糖果 j 个。时间复杂度为O(n^3).#include #include #include #include using namespace std;int dp[105][1005];int main(){原创 2017-04-06 18:50:16 · 436 阅读 · 0 评论 -
LightOJ - 1086
思路:欧拉回路中所有点的度为偶数,然后剩下奇数的点用状压DP找最短路即可。#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL long long#define l原创 2017-04-17 11:37:07 · 265 阅读 · 0 评论 -
51nod-1086 多重背包
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL long long#define lson l,m,rt<<1#define rson m+1,r,rt<<1|原创 2017-06-03 20:47:09 · 297 阅读 · 0 评论 -
codeforces-487B Strip(dp+rmq+二分+水数据)
笑死,最坏情况下时间复杂度为O(n*nlogn)思路:每次找前面最小l,使[l,i]满足条件,dp[i] = dp[l-1]+1;#include #include #include #include #include #include #include #include #include #include #include using namespace s原创 2017-03-27 21:00:30 · 392 阅读 · 0 评论 -
玲珑杯-1103 萌萌哒的第八题(DP+树状数组)
1103 - 萌萌哒的第八题Time Limit:7s Memory Limit:128MByteSubmissions:146Solved:47DESCRIPTION给出两个数列A和B,长度都为n,分别编号都是从1到n,再给出m个数对(c, d),表示A数列的地c个数可以跟B数列的第d个数匹配,当这两个数被匹配上了,那么总分加上这两个数,但原创 2017-03-05 15:32:52 · 322 阅读 · 0 评论 -
玲珑杯 1066(“玲珑杯”ACM比赛 Round #6)(区间DP+四边形不等式优化)
1066 - Buy CandyTime Limit:1s Memory Limit:1024MByteSubmissions:185Solved:39DESCRIPTIONPigVan ( Mr.Van's pet ) encounter a hard problem in his school. There are n groups原创 2016-12-23 21:53:33 · 240 阅读 · 0 评论 -
poj 1651
#include #include #include using namespace std;const int maxn = 106;const int inf = 0x3f3f3f3f;int dp[maxn][maxn] = { 0 }, n;int a[maxn];int main(){ while (scanf("%d", &n) != EOF) { memse原创 2016-03-12 00:00:08 · 336 阅读 · 0 评论 -
poj 2486-Apple Tree - 树形DP
B - Apple TreeTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit Status Practice POJ 2486DescriptionWshxzt is a lovely girl. She likes apple ver原创 2016-04-18 15:24:42 · 275 阅读 · 0 评论 -
hdu 2059 龟兔赛跑 DP
龟兔赛跑Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15558 Accepted Submission(s): 5812Problem Description据说在很久很久以前,可怜的兔子经历了人生原创 2016-05-14 09:23:30 · 257 阅读 · 0 评论 -
HDU 2191(多重背包)
基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。令f[i][v]表示前i种物品恰放入一个容量为v的背包的最大权值,则有状态转移方程:f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i]|0#include #include #include using namespace std;原创 2016-05-17 20:32:15 · 263 阅读 · 0 评论 -
HDU 1171(01背包)
#include #include #include using namespace std;int dp[255000],v[5005];int main(){ int n; while (scanf("%d", &n) != EOF) { if (n <= 0) continue; memset(dp, 0, sizeof(dp)); int l = 0, su原创 2016-05-17 21:02:21 · 296 阅读 · 0 评论 -
HDU 1114(完全背包)
Piggy-BankTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 19482 Accepted Submission(s): 9888Problem DescriptionBefore ACM can原创 2016-05-17 22:23:38 · 244 阅读 · 0 评论 -
POJ 1947-Rebuilding Roads-(树形DP)
D - Rebuilding RoadsTime Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64uSubmit Status Practice POJ 1947DescriptionThe cows have reconstructed Farmer Joh原创 2016-05-19 00:04:44 · 280 阅读 · 0 评论 -
POJ 1191-棋盘分割(记忆化搜索)
棋盘分割Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 14003 Accepted: 4993Description将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后转载 2016-05-20 16:54:05 · 247 阅读 · 0 评论 -
poj 3254(状态压缩)
DescriptionFarmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squar原创 2016-07-29 14:12:37 · 220 阅读 · 0 评论 -
hdu 1561简易树形DP
#include #include #include using namespace std;const int maxn = 205;int n, m, val[maxn];int dp[maxn][maxn];int head[maxn], tol;struct Edge{ int v, next;}edge[maxn];void init(){ memset(原创 2016-03-08 20:29:41 · 300 阅读 · 0 评论