动态规划
文章平均质量分 64
_binbin
我是“三好学生”:好吃,好玩,好睡。
展开
-
HDU 2412 Party at Hali-Bula
#include #include #include #include #include #include #include using namespace std;struct node{ int in,no;};struct link{ int nex,to;}L[509];int F[509];map mp;int cnt,cntl,n;void原创 2012-08-06 15:13:16 · 649 阅读 · 0 评论 -
TYVJ 1211 跳舞家怀特先生(DP)
连接:http://new.tyvj.cn/Problem_Show.aspx?id=1211思路:dp[k][i][j] 表示第k步,第一只脚在i点,第二只脚在j点。。一次只能变一只脚。。#include #include #include #include #include #include #include using namespace std;const int原创 2012-09-17 16:09:20 · 1483 阅读 · 0 评论 -
HDU 1133 Buy the Ticket(DP)
题意:买票的时候,顾客有50元的钱或者100元的钱,,只能用顾客的钱找环给顾客。。所以50每一次,拿50元的要不少于拿100元的顾客。。思路:动态规划。方程:dp[i][j] = X*dp[i-1][j] + Y*dp[i][j-1] .,X,Y都是表示,选择第i个人时 ,有(n-i+1)种选择方式。dp[i][j] 表示当前已经有i个拿50的顾客,j个拿100元的顾客买到票了。原创 2012-10-14 20:35:51 · 975 阅读 · 0 评论 -
HDU 4475 Downward paths
#include #include #include #include #include #include #include using namespace std;#define LL long longconst int N = 1000009;const LL MOD = 1000003;int re[N];void init(){ LL k = 1;原创 2012-12-02 16:59:39 · 842 阅读 · 0 评论 -
POJ 1018 Communication System (DP)
题意:一个系统由若干个设备组成,没一个设备有多种选择。求b/p的最大值。设n个设备的带宽和价值分别为 (bi,pi) ,则b = min(bi),p = sum(pi);bi,pi 没有说明大小,都不是很大,dp[i][j] = max(dp[i][j],dp[i-1][j]+b[k]);{p[k]#include #include #include #include原创 2012-12-16 20:23:10 · 1377 阅读 · 0 评论 -
POJ 1179 Polygon(区间DP)
题意:把一个多边形去掉一边,再把任意相邻打两个点合并成一个点,求最大值,注意:两个最小的数相乘可以得到最大的数。。。#include #include #include #include #include #include #include #include using namespace std;#define LL long longconst LL INF =0原创 2012-12-18 22:12:49 · 570 阅读 · 0 评论 -
POJ 1189 钉子和小球 (DP)
题意:#include #include #include #include #include #include #include #include using namespace std;#define LL long longint p[59][59];LL dp[59][59];int n,m;LL gcd(LL a,LL b){ if(a==0)原创 2012-12-20 17:05:16 · 672 阅读 · 0 评论 -
1086 - Jogging Trails (欧拉回路+dp)
好长时间没有做dp了 ,做个dp题 ,感觉跟模拟差不多,,这是在倒退啊。。#include #include #include #include #include #include #include #include #define LL long long#define DB doubleusing namespace std;const int N =原创 2013-05-02 17:16:51 · 709 阅读 · 0 评论 -
codeforces 303 D. Ilya and Roads(动态规划)
多年没有写动态规划就是个悲剧啊!!省赛结束之后学习数据结构+动态规划..努力努力#include #include #include #include #include #include #include #include #include #define LL long long#define DB doubleusing namespace std;const in原创 2013-06-02 19:23:29 · 838 阅读 · 0 评论 -
HDU 4714 Tree2cycle (构造,树形DP)
题意:一个树减去一条边,或者加上一条边的费用都是1,问把这棵树改成一个圆的最小费用。一个树形dp,不会dp的菜鸟,,,,各种分类讨论。。。#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include原创 2013-09-08 17:09:10 · 1480 阅读 · 2 评论 -
SOJ 1822. Fight Club(区间DP)
题意:有n个人斗争,每一对谁赢谁败都已知,问谁可能是最后的赢家。。思路:要相邻的打完之后才能与他隔一个的人打,容易想到用区间dp。。dp[i][j] 表示第i个人可以与第j个人打,,只要到最后i能跟i+n打,说明就可以赢了。。如果i能打到j,k能打到j ,只要i能打赢k,或者j能打赢k,i,j就能见面了。。连接:http://soj.me/1822#include #in原创 2012-09-17 15:17:48 · 1160 阅读 · 0 评论 -
POJ 1141 Brackets Sequence(区间DP)
题意:括号匹配;思路:第一次做区间dp的题;好难理解他的存储结构啊。dp[i][i] 表示 第i个字母到第j个字母有多少个匹配的括号。。a[i][] 表示到达该步的前一步,,#include #include #include #include #include #include #include using namespace std;const int N = 10原创 2012-09-15 21:18:57 · 540 阅读 · 0 评论 -
live archive 4212 - Candy
题意:最多可以拿走多少个糖果。当拿走一个糖果的时候,他左右两边的两个和上一行和下一行的两行都会没有。先横向再纵向DP:状态转移:dp[i] = max(dp[i-2],dp[i-3])+dp[i]; 求最大值就行了。#include #include #include #include #include #include using namespace std;const原创 2012-08-12 08:46:44 · 510 阅读 · 0 评论 -
POJ 3345 HDU 2415 Bribing FIPA(树形DP)
题意:贿赂了某人就可以得到他的选票,和他下属的选票,问要得到m张选票,最少要花费多少钱。每一个人只有一个上司或者没有。是树形的;为了处理方便,增加一个跟节点,贿赂他的钱是INF,把所有没有上司的人的上司都指向该根节点。#include #include #include #include #include #include #include using name原创 2012-08-12 11:26:55 · 935 阅读 · 0 评论 -
POJ 3260The Fewest Coins (DP)
题意:FJ 买一个T元的东西,求总钱张数最小值。即付出的张数,加找回的张数的和的值最小。。这题真纠结啊。。。思路一开始是对的。。。但是初始化为-1 怎么交都错,,,,郁闷死了。。#include #include #include #include #include #include using namespace std;const int M = 10001;con原创 2012-08-29 21:15:06 · 500 阅读 · 0 评论 -
HDU 4260 The End of The World
汉诺塔,给出初始状态,问,要多少步才能把他一道第二个位置。。。#include #include #include #include #include #include using namespace std;long long dp[100][4];int main(){ freopen("in.txt","r",stdin); char a[100];原创 2012-08-25 17:33:16 · 613 阅读 · 0 评论 -
HDU 4274 Spy's Work(树形dp)
题意:树的每一个节点都有一个权值都大于1。。给你一些条件判断这些条件是否都满足。。弱校,水平本来就差,还不好好努力。被虐了活该。。。。#include #include #include #include #include #include using namespace std;const int N = 10009;const int INF = 0x原创 2012-09-08 18:20:50 · 1184 阅读 · 0 评论 -
POJ 3093 Margaritas on the River Walk(背包)
题意:有n件物品,每件都有价值,用m的钱买这些物品,。尽可能多的买东西,(直到钱不够买其他的东西为止)。问有多少种买东西的方法。。思路:自己弄了一个状态转移方程,发现是错的。。后来 yy教我的‘。。。。先不买第一件物品,弄一个方程。。。再必须买第一件物品,不用第二件物品。。。再必须买前两件,不买第三件。。。类推。。这样就没有重复。。。然后考虑边界就ok了#include #include原创 2012-09-14 21:17:20 · 877 阅读 · 0 评论 -
ecnu 1600 公路巡逻 (黑书上的DP)
链接:http://acm.cs.ecnu.edu.cn/problem.php?problemid=1600转移方程:dp[i+1][j+k] = min(dp[i+1][j+k],dp[i][j]+t); //从第i个关口,到第i+1个关口会与t个车相遇。这里可以优化的。没优化也能过。就不优化了。。#include #include #include #include原创 2012-10-05 10:53:26 · 1140 阅读 · 2 评论 -
POJ 2642 The Brick Stops Here(01背包)
题意: 有n种砖块,每种有价格和体积。问从中选出t种砖块,要求平均体积在a到b之间。。。标准的01背包思路:dp[i+1][j+v]=dp[i][j]+p; 最多选出20种,所以dp只要到20层就可以了。。。。现在开始转动态规划了,又有好多水题做了,,,#include #include #include #include #include #include #incl原创 2012-09-14 18:48:38 · 698 阅读 · 0 评论 -
POJ 1976 A Mini Locomotive(背包)
题意:求最大的3个连续子段和。。方程:dp[i][j] = max(s[j]+dp[i-1][j-lm],dp[i][j-1]) 、、dp[i][j] :前j个数的子段中选i个的最大和。s[i] 第i-m+1到i的数字之和。。。#include #include #include #include #include #include #include using names原创 2012-09-15 09:34:51 · 572 阅读 · 0 评论 -
ZOJ 3735 Josephina and RPG (dp)
这题应该是动态规划吧,乱猜的。dp[i][j]表示 开始的时候选择第i个人。后来经过战斗&交换变成第j个人。的最优值。#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #原创 2013-11-24 19:05:43 · 1522 阅读 · 0 评论