DP
HonniLin
double fighting
展开
-
GDUT决赛 - Problem H: 悦动达人(DP)
题目:Description一个游戏,在屏幕上有5个格子形成一行,每一秒都会有一个格子闪烁,格子闪烁时你需要保证至少有一只手指在格子上面, 现在我们已经知道第i秒时,第xi个格子会闪烁,我们假设手指的移动不花费时间,你现在用两根手指玩这个游戏, 设初始两根手指都在0处位置,算出n秒过后手指需要移动的最小距离。(允许手指交叉)注:手指移动的距离的计算是,假设你的一根从x,移动到y原创 2015-03-16 21:55:59 · 817 阅读 · 0 评论 -
ZOJ 3469 - Food Delivery(区间DP)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3469题意:给出直线上n个人的坐标和邮递员的坐标,邮递员给他们送外卖,他们的气愤值会随着等待时间的增加而增加,求出最小的气愤值。思路:以邮递员的位置为起点从中间向两边送的方案最好。dp[i][j][0] 表示区间(i,j)且停留在i的最小气愤原创 2015-05-05 16:22:53 · 532 阅读 · 0 评论 -
HDU 4570 - Multi-bit Trie(区间DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4570题意:题目。。。因为题目太烦比赛的没有看。直接解释样例:A={1 2 4 4 5 4 3},将其划分为 1 2 4|4 5|4|3,花费是 1*2^3+4*2^2+4*2^1+3*2^1 = 38, 求出最少的花费。思路:区间DPdp[i][j] 表示i到j的最小花费,原创 2015-05-13 13:11:58 · 503 阅读 · 0 评论 -
CSU 1527 - Bounty Hunter(DP‘双调旅行商问题)
题目:Sample Input250 11 22 03 24 13100 1200 1300 1Sample Output9.300563079746400题意:平面坐标系上的n个点,从最左边的点到最右边的点在返回,每个点都要遍历到且只能走一次,求最短距离。思路:双调旅行商问题。h原创 2015-05-16 21:07:03 · 1109 阅读 · 0 评论 -
ZOJ 3777 - Problem Arrangement(状压DP)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5264题意:给出n*n的矩阵,从中选出n个数,任意两个数在不同行不同列,求出总和大于m的方案数。思路:因为给出的矩阵比较小(ndp[i][s][k] 表示到第i行状态为s总和为j 的方案数。总和j>m时当做m。因为转移的时候i只与前一行有关,原创 2015-05-16 12:15:23 · 660 阅读 · 0 评论 -
POJ 2229-Sumsets ( 基础DP)
看了题解才会的题0.0...神奇的DP..本题分为原创 2014-05-22 19:39:49 · 841 阅读 · 0 评论 -
POJ 2385-Apple Catching (基础DP)
摘苹果呀摘苹果~~dp[i]原创 2014-05-24 20:31:33 · 888 阅读 · 0 评论 -
HDU 4568 - Hunter(BFS+DP`TSP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4568题意:n*n的矩阵,每一个格子都有相应的花费,k个宝藏的位置。从任意边界进入任意边界出去。求出得到所有宝藏的最小花费。思路:将边界作为0点。bfs求出宝藏之间以及宝藏与0点的最短距离。一次TSP,在图中跑一次回路,从起点0回到起点,得到最小花费。WA点:处理原创 2015-05-19 16:25:15 · 803 阅读 · 0 评论 -
HDU 2476 - String painter(区间DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2476题意:给出相同长度的a,b两端字符串,每次可以将a串中的任意连续区间修改成相同的任意字母,求出a变成b的最少操作数。思路:好难>,,解释写在代码中了。#include #include #include #include using namespace std原创 2015-06-04 21:14:38 · 534 阅读 · 0 评论 -
Codeforces 149D - Coloring Brackets(区间DP)
题目:http://codeforces.com/problemset/problem/149/D题意:对括号字符串进行染色:1.每个括号可以染色或不染色。2.每对括号有且仅有一个染色。3.相邻的括号颜色不同或都无色。思路:dp[l][r][i][j]: 区间(l,r)左右颜色分别为i,j的方案数。0:无色,1:红色,2:蓝色。1. l +1 = r :原创 2015-06-06 16:41:48 · 511 阅读 · 0 评论 -
ZOJ 3872 - Team Formation(DP)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3872题意:求出序列中元素不相同的子序列的总和。思路:记录上一个出现x的位置 b[a].res += (i-b[a])*a;AC.#include #include #include using namespace std;ty原创 2015-04-28 22:34:24 · 491 阅读 · 0 评论 -
POJ 1651 - Multiplication Puzzle(区间DP)
题目:http://poj.org/problem?id=1651题意:给出一段序列,删除除头尾的数字,每次删除ai的花费是ai-1*ai*ai+1,求出删除的最小花费。思路:dp[i][j] 表示i~j的最小花费。dp[i][j] = min(dp[i][k] + dp[k][j] +ai*ak*aj 表示若k为最后取出的数字的话,则区间i~j的最小花费是多少。据原创 2015-05-08 18:07:47 · 504 阅读 · 0 评论 -
POJ 2955 - Brackets(区间DP)
题目:http://poj.org/problem?id=2955题意:求出字符串中匹配的括号个数.思路:区间DP. dp[i][j]: 表示区间j到i匹配的括号数.AC.#include #include #include #include using namespace std;char s[105];int dp[105][105];map原创 2015-04-09 22:23:14 · 461 阅读 · 0 评论 -
HDU 4561 - 连续最大积(DP`简单)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4561题意:给出n个数只有0,-2,2, 最大积若为正数,则求出2的幂.思路:dp[i][0] 表示第i个位置积为负数时2的个数.dp[i][0] 表示第i个位置积为正数时2的个数.AC.#include #include #include #include usi原创 2015-03-20 18:16:25 · 683 阅读 · 0 评论 -
GDUT决赛 - Problem B: 完美串(DP`LCS)
题目;Description爱美之心人皆有之,GG也不例外。所以GG他对于完美串有一种热衷的爱。在GG眼中完美串是一个具有无比魅力的01子串。这个子串有之其魅力之处,对它取反后水平翻转,它又和它原来的一模一样。这就是GG热爱它的原因。但是世上并不是所有的01串都是完美串,所以GG下定决心想改造01串,使所有的01串都成为完美串。但是改造01串是一个巨大的工程,GG太忙了,他还差T个原创 2015-03-17 18:30:46 · 593 阅读 · 0 评论 -
LightOJ 1422 - Halloween Costumes(区间DP)
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=72090#problem/B题意:给你n天要穿的衣服,衣服可以套着穿,也可以脱下来,一旦脱下来就不可以再穿.求出最少需要多少衣服.思路:第一道区间DP,看着题解才会的题目.dp[i][j] :从第i天到第j天可以所需的最少的衣服.若第i天要换新衣服的话:原创 2015-03-17 18:50:03 · 470 阅读 · 0 评论 -
POJ 1050 - To the Max(DP)
题目:http://poj.org/problem?id=1050题意:求出大矩阵中和最大的小矩阵.思路:前缀和. 计算一下复杂度不会超时.AC.#include #include #include using namespace std;const int MAX = 2e6;int a[105][105], dp[105][105], row[105原创 2015-03-13 19:17:05 · 492 阅读 · 0 评论 -
HDU 1864 - 最大报销额(DP`01背包)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1864思路:如果背包容量是小数, 可以根据答案保留的小数的位数来将容量转换成整数.AC.#include #include #include #include using namespace std;int cnt[35], dp[3000005];double b[4],原创 2015-03-13 19:20:25 · 505 阅读 · 0 评论 -
UVA 1424 - Salesmen(DP)
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68677#problem/C题意:给出一个无向图,给出一段序列,要求修改最少的次数,使序列中的相邻两个有直接通路,求出最少修改的点.思路:DP, 状态方程: dp[i][j] = min(dp[i][j], dp[i-1][k] + 1). 如果j与k之间原创 2015-03-14 09:32:45 · 508 阅读 · 0 评论 -
HDU 4632 - Palindrome subsequence(区间DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4632题意:求出长度(思路:区间DP. i(0~len), j(i-1, 0) : 要减去重复的部分dp[j+1][i-1], dp[j][i] = (dp[j+1][i] + dp[j][i-1] - dp[j+1][i-1] + 10007) % 10007当有相原创 2015-03-31 20:06:57 · 558 阅读 · 0 评论 -
KuangbingOJ4.4 B - 拉肚子的A巨(DP)
题目:http://www.kuangbinoj.com:8080/problem.php?cid=1007&pid=1题意:n个数,m个乘号,求出将乘号放入n个数中得到的最大值。思路:DP。dp[i][j]: 前i个数j个乘号得到的最大值。AC.#include #include #include using namespace std;char原创 2015-04-04 18:40:22 · 945 阅读 · 0 评论 -
HDU 4649 - Professor Tian(概率DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4649题意;n+1个数, n个操作符, 每个操作符消失的概率为f,操作符消失时连同后面那个数消失.求出期望答案.思路:将每个数拆分成二进制位.dp[i][j][0] :第i个数第j位取0的概率.dp[i][j][1] :第i个数第j位取1的概率.注意输出要 %.6f...原创 2015-04-09 14:30:22 · 518 阅读 · 0 评论 -
POJ 1141 - Brackets Sequence(区间DP)
题目:http://poj.org/problem?id=1141题意:给你一段字符串,补全,使得得到的字符串最短。思路:dp[i][j]: 区间(i,j)补全的最少数量。期间使用p[][] 记录数量,记录需要补全的位置。递归输出最短字符串。AC.#include #include #include #include using namespace s原创 2015-06-06 19:24:07 · 447 阅读 · 0 评论 -
Codeforces Beta Round #96 (Div. 1) C. Logo Turtle (DP)
http://codeforces.com/problemset/problem/132/C题意:给出一段指令序列,F为直走,T为向后转。改变指令n次,求出离起点最远的距离,一个指令可以改变多次。思路:dp【i】【j】【k】:执行i个指令后改变j次方向为k 的最远距离。由于最远距离可以有两个方向,则应该求两次,一次是正方向的最远(正向-反向),一次是负方向的最远(反向-正向)。原创 2015-07-10 14:57:02 · 528 阅读 · 0 评论 -
HDU 4597 - Play Game(区间DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4597题意:两个序列,两个人每次只能从其中一个序列的两端取一个数,最优策略使得总数值最大。思路:区间DP,记忆化搜索,dfs(i, j, k, l), 表示第一个序列剩下区间[i,j],第二个序列剩下区间[k,l]的情况下开始拿,最多可以拿多少? 当面临状态dfs(i, j, k, l)原创 2015-07-12 22:13:07 · 482 阅读 · 0 评论 -
POJ 3162 - Walking Race(树形DP)
题目:http://poj.org/problem?id=3162题意:树中节点的直径,最大值与最小值的差值不超过m的最大区间。思路:步骤1:求树的直径。步骤2:求出区间,维护两个单调队列,一个递增一个递减。AC.#include #include #include #include #include using namespace std;const原创 2015-08-29 17:26:23 · 418 阅读 · 0 评论 -
Codeforces Round #135 (Div. 2) - D. Choosing Capital for Treeland(dfs / 树形DP)
题目:http://codeforces.com/problemset/problem/219/D题意:给出n个点,n-1条有向边的树,以一个点为中心,从这个点出发到其他各点需要更改的一些路径的方向,求出最少更改的路径数,以及符合这个数量的点。思路:先建无向边(当边的编号i:i%2=0,与原来方向相同,i%2=1,与原来方向不同),以1为根,dfs整棵树。设定1点到各点的方原创 2015-08-17 17:02:42 · 593 阅读 · 0 评论 -
*HDU 5305 - Delicious Apples (贪心+背包)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5303题意:有一个长为L的环,有n棵苹果树,篮子每次可以装K个苹果。给出每棵苹果树的位置及苹果数量。求出将所有的苹果搬到原点的最短距离。思路:可以在半圆内装满,则原路返回而不需要走一周。最后一圈中剩下先将所有的苹果处理出来,排序。dp【0】【i】:表示顺时针取i个苹果走过的最原创 2015-07-24 21:34:33 · 455 阅读 · 0 评论 -
HDU 5396 - Expression(区间DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5396题意:n个数,n-1个符号(只有+、-、*),求出所有不同运算顺序的结果的总和。思路:区间DP. dp[i][j] 表示区间(i,j)不同组合结果的总和。dp[i][j] += dp[i][k-1] (c[k]) dp[k][j]; c[k] 为*, 和+,- 的处理有原创 2015-08-18 20:03:03 · 646 阅读 · 0 评论 -
HDU 4274 - Spy's Work(树形DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4274题意:给出n个点的树,树上的节点权值为其子树的节点权值和(大于等于1),给出一些节点的限制条件,判断这些条件是否成立。思路:midp:表示该节点权值的下限,madp:表示该节点权值的上限。按照题目所给的限制条件,赋值dp数组。在dfs中更新 midp,节点的权值上限无法原创 2015-09-03 16:47:17 · 420 阅读 · 0 评论 -
*POJ 1741 - Tree(树形DP‘树的分治)
题目:http://poj.org/problem?id=1741题意:求树中两点之间的距离小于等于k的对数。思路:树的点分治。看论文+模板。AC.#include #include #include #include using namespace std;const int maxn = 10005;int n, k;int vis[maxn],原创 2015-08-06 22:47:42 · 828 阅读 · 0 评论 -
***HDU 3237 - Help Bubu(状压DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3237题意:给出n本书的高度(25现在你可以移动至多k本书,求出最小的杂乱度。思路:书的高度只有 0~7,所以可以使用状压来表示书的高度的状态。如果前i本书中存在高度为h的书,那么s的第h位表示为1.dp[i][j][s][h]: 表示前i本书取走j本,书的高度状态为s,且最原创 2015-09-06 18:45:58 · 574 阅读 · 0 评论 -
HDU 4123 - Bob’s Race(树形DP + RMQ)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4123题意:给出一颗n个点的有边权的树,Q个询问,给出m,求出连续的最长区间,每个点能到达的最长路径,最大值与最小值得差小于等于m。思路:两个dfs,得到每个点可以到达的最大路径。O(n)。RMQ 求区间最小值最大值。O(nlogn), 询问O(1).AC.#includ原创 2015-10-01 10:01:22 · 482 阅读 · 0 评论 -
**HDU 4276 - The Ghost Blows Light(树形DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4276题意:给出一棵树,从1走到n,总时间为T,每走一条边需要花费一定时间,每个结点有一定价值,问在指定时间内回到T的能获取的最大价值。思路:先跑一次dfs,得到从1~n必走的路径,将这些路径值置0.再一次dfs跑树形DP+分组背包,dp[i][j]: 表示到i点花费j时间得到的最大原创 2015-10-04 22:02:11 · 390 阅读 · 0 评论 -
UVALive 6042 - Bee Tower(dp)
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85218#problem/E思路:找到最高的塔之后,向右遍历,向左遍历。求出最终答案。INF开小了,老泪纵横。。AC。#include #include #include #include #include using namespace st原创 2015-08-03 12:12:40 · 530 阅读 · 0 评论 -
**HDU 4412 - Sky Soldiers(区间DP)
题目:点击打开链接题意:有n个飞行员,每个飞行员都有c个落点和相应的概率,要建立m个补给站,使得n个飞行员到达补给站的期望值最小。思路:dp[i][j] 表示前i个落点建立j个补给站的最小期望值。dp[i][j] = min(dp[k][j-1], cost[k][i] ) 。cost[k][i] 表示区间(k,i)建立1个补给站供给此区间中的飞行员的期望值。期原创 2015-08-15 18:01:40 · 507 阅读 · 0 评论 -
**HDU 5378 - Leader in Tree Land(概率DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5378题意:给你一棵树,有n个人,标号分别是1~n,每个节点放一个人。对于一棵子树来说,标号最大的那个人为领导,求出领导为k个的方案数。思路:直接复制题解思路,奇妙的想法!可以用求概率的思想来解决这个问题。令以i号节点为根的子树为第i棵子树,设这颗子树恰好有sz[i]个点原创 2015-08-13 21:36:20 · 524 阅读 · 0 评论 -
POJ 4045 - Power Station(树形DP)
题目:http://poj.org/problem?id=4045题意:n个节点,n-1条边。求出以哪个点作为基地时,其他点到这个点的总权值最小。输出最小的总权值以及基地。思路:树形DPnum[u]: u点的所有子树节点个数。dp[u][0]: u点的所有子树节点到u的总距离。dp[u][1]: 除u点的所有子树节点以外的节点到u点的总距离。f[v][1] =原创 2015-07-26 23:04:39 · 534 阅读 · 0 评论 -
**HDU 4281 - Judges' response(DP`背包+TSP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4281题意:给出n个题目的坐标和花费的时间,每个裁判解决题目的时间为m,每个题目只能让一个裁判解决。求出1.最少派出多少裁判才能将所有的题目解决。2.不限裁判数量,解决所有的问题的最少路径。思路:解决问题一:将2^n种的地点选择 看成 2^n种物品,物品的权值为所选择的物品的原创 2015-08-08 20:19:54 · 523 阅读 · 0 评论 -
HDU 4283 - You Are the One(区间DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4283用两种形式写了一下。。AC。#include #include #include #include using namespace std;const int inf = 0x3f3f3f3f;const int maxn = 105;int v[maxn], su原创 2015-08-07 22:49:44 · 561 阅读 · 0 评论