ACM_动态规划系列
acceptedwwh
当代大学生,阳光开朗,乐于交往和求知!
展开
-
最长公共子序列(hdu1159)
#include #include #include using namespace std;const int maxlen = 1000;char x[maxlen];char z[maxlen];int F[maxlen][maxlen];int DP() { int xlen = strlen(x); int zlen = strlen(原创 2012-09-17 23:38:10 · 879 阅读 · 0 评论 -
TOJ1235最大连续子序列
最大连续子序列 时间限制(普通/Java):1000MS/10000MS 运行内存限制:65536KByte总提交: 32 测试通过: 17描述给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 例如给定序列{ -2, 11, -4, 13原创 2013-08-20 22:21:51 · 1127 阅读 · 0 评论 -
TOJ2671 01-package
01-package Time Limit(Common/Java):1000MS/10000MS Memory Limit:65536KByteTotal Submit: 41 Accepted: 17Description给定一个背包的容量k,给定n个物品的体积和价值,物品不可分割,将n个物品中选若干个物品放入背包,求背包内物原创 2013-08-20 22:44:56 · 1177 阅读 · 0 评论 -
题目1531:货币面值(网易游戏2013年校园招聘笔试题)
题目1531:货币面值时间限制:1 秒内存限制:128 兆特殊判题:否提交:320解决:119题目描述:小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在游戏中购买各种装备来提升自己。有一天,他突然很想知道这些纸币的组合不能表示的最小面额是多少,请聪明的你来帮助小虎来解决这个财政问原创 2013-08-24 23:16:30 · 2641 阅读 · 0 评论 -
树的最大独立集 (算法经典入门)
思考:看过算法经典入门再看看网上的这个程序就是一种享受啊!禁不住转载,我还在树上的动态规划入门阶段。。。加油!#include #include #include #include using namespace std;const int MAXN=100;vector G[MAXN]; //无根树int l[MAXN]; //结点层次int p[MAXN]; //根树i转载 2014-03-13 20:52:36 · 3088 阅读 · 0 评论 -
POJ1088 滑雪
DP原创 2014-03-14 21:27:01 · 703 阅读 · 0 评论 -
HDU1003
DP原创 2014-04-08 22:53:02 · 952 阅读 · 0 评论 -
HDU1231 最大连续子序列
DP原创 2014-04-08 22:55:13 · 812 阅读 · 0 评论 -
HDU 1159 Common Subsequence
DP原创 2014-04-08 23:07:58 · 850 阅读 · 0 评论 -
HDU2084 数塔
dp原创 2014-04-08 23:06:26 · 779 阅读 · 0 评论 -
POJ3624 Charm Bracelet
DP原创 2014-04-08 22:57:13 · 971 阅读 · 0 评论 -
HDU1114 & POJ1384 Piggy-Bank
完全背包问题原创 2014-04-10 10:34:30 · 822 阅读 · 0 评论 -
POJ2081 Recaman's Sequence
动态规划原创 2014-04-10 11:11:42 · 839 阅读 · 0 评论 -
POJ3249Test for Job
DP原创 2014-04-12 11:10:27 · 848 阅读 · 0 评论 -
HDU2844
多重背包问题。原创 2014-04-13 14:51:24 · 1440 阅读 · 0 评论 -
DP
区间DP,记忆化搜索原创 2014-04-13 15:07:09 · 834 阅读 · 0 评论 -
POJ1014 & HDU1059 Dividing
背包问题原创 2014-04-13 15:14:51 · 831 阅读 · 0 评论 -
TOJ1072编辑距离
编辑距离 Time Limit(Common/Java):1000MS/10000MS Memory Limit:65536KByteTotal Submit: 692 Accepted: 217Description假设字符串的基本操作仅为:删除一个字符、插入一个字符和将一个字符修改成另一个字符这三种操作。 我们把进行了一次原创 2013-08-20 22:25:40 · 1208 阅读 · 0 评论 -
TOJ3583A and B Problem
A and B Problem Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByteTotal Submit: 25 Accepted: 16Description相信你已经AC了A + B Problem,是不是很简单呢。下面继续A and原创 2013-08-20 22:34:36 · 1403 阅读 · 0 评论 -
TOJ1331Give me an offer!
ive me an offer! Time Limit(Common/Java):1000MS/10000MS Memory Limit:65536KByteTotal Submit: 38 Accepted: 22DescriptionSpeakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,原创 2013-08-20 22:32:20 · 1564 阅读 · 0 评论 -
游船问题(DP)
#include #include #include using namespace std;const int maxn = 1000;int n;int m[maxn][maxn];int money(int i, int j){ int k, temp = 0, u; if(i == j) { return 0; } if(i+1 == j) { r原创 2012-11-04 22:52:09 · 1177 阅读 · 0 评论 -
游船问题II(DP)
#include #include #include using namespace std;const int maxn = 1000;int r[maxn][maxn];int m[maxn];int n;//m[i]表示起点到第i站的最少租金费用。// m[i] = min{m[k] + m[k][i], m[i]}int money_dp(){ for(in原创 2012-11-04 23:08:28 · 1035 阅读 · 0 评论 -
01背包(滚动数组)
#include #include #define maxn 10000using namespace std;int f[maxn];int n;int main(){ int v, w; int c; while(scanf("%d%d", &n, &c) != EOF){ memset(f, 0, sizeof(f));原创 2012-11-05 23:07:55 · 1628 阅读 · 1 评论 -
01背包(递推)
#include #include using namespace std;const int maxn = 1000;int v[maxn];int w[maxn];int n = 0, W1= 0;int F[maxn][maxn]; int DP() { for (int i = n-1; i >= 0; i--) { for (int j原创 2012-09-17 23:33:10 · 953 阅读 · 0 评论 -
hdu 2602
/*****************2013.2.1hdu 2602Achiberxtime:46ms mem: 4244khttp://acm.hdu.edu.cn/showproblem.php?pid=2602*****************/#include #include #include const int maxn = 1010;using namespac原创 2013-02-01 10:24:54 · 740 阅读 · 0 评论 -
hdu 1087
/******************31ms 256k2013.2.2http://acm.hdu.edu.cn/showproblem.php?pid=1087****************/#include #include #include int digit[1005];int tmp[1005];int biggest(int n){ int res原创 2013-02-02 12:58:52 · 694 阅读 · 0 评论 -
求数组的子数组之和的最大值(编程之美P183)
#include //data: 2013.2.3#include #include const int N = 1000;using namespace std;int get_sum(int *a, int n ) { int start[N], all[N]; int i; start[n-1] = a[n-1]; all[n-1] =原创 2013-02-03 16:19:45 · 874 阅读 · 0 评论 -
算法导论—动态规划之装配线调度
#include #include #include #include using namespace std;const int maxn = 10000;int f1[maxn], f2[maxn]; //保存最优解int a[3][maxn]; //每个装配站所用的时间int t[3][maxn]; //装配线调度所用的时间int l[3][原创 2013-03-17 11:20:50 · 1295 阅读 · 0 评论 -
hdu数塔(dp入门)
#include #include #include using namespace std;const int maxn = 105;int a[maxn][maxn];int d[maxn][maxn];int n; //代表行数。int DP() { int i, j; for(i = 1; i <= n; i++) {原创 2013-03-17 19:30:57 · 1090 阅读 · 0 评论 -
求数组中最长递增子序列—动态规划入门(编程之美)
#include #include #include using namespace std;const int maxm = 10000;int a[maxm];int value[maxm]; //记录当前最优解int n;//时间复杂度O(n*n)int work(){ for(int i = 1; i <= n; i++) { value[i]原创 2013-03-18 20:04:25 · 1304 阅读 · 0 评论 -
嵌套模型(DAG上的动态规划)—动态规划入门(算法经典入门)
矩形嵌套时间限制:3000 ms | 内存限制:65535 KB难度:4描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在原创 2013-03-18 20:10:21 · 2307 阅读 · 0 评论 -
Who Is In Front of Me(hrbeu1216)
Who Is In Front of MeTimeLimit: 1 Second MemoryLimit: 32 MegabyteTotalsubmit: 693 Accepted: 192 DescriptionThere are N(1.For example, there are 6 students standing in a queue wit原创 2013-04-08 17:49:14 · 1027 阅读 · 0 评论 -
几道经典DP
将一个整数N拆分成若干个正整数的和,问有多少种不同的拆分方案。例如 N = 5有七种:(1) 5 = 5(2)5 = 4 + 1 (3) 5 = 3 + 2 (4) 5 = 3 + 1 + 1 (5)5 = 2 + 2 + 1(6)5 = 2 + 1 + 1 + 1(7)5 = 1 + 1 + 1 + 1 + 1 数据范围: N = 50000.原创 2013-04-09 22:35:02 · 1252 阅读 · 0 评论 -
POJ3624Charm Bracelet(01背包)
Charm BraceletTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 15375 Accepted: 7013DescriptionBessie has gone to the mall's jewelry store and spies a c原创 2013-04-09 20:48:22 · 1186 阅读 · 1 评论 -
POJ3356 AGTC
AGTCTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 7737 Accepted: 3074DescriptionLet x and y be two strings over some finite alphabet A. We would like原创 2013-04-10 22:10:54 · 983 阅读 · 0 评论 -
01背包(递归)
#include #include using namespace std;const int maxn = 1000;int v[maxn];int w[maxn];int n = 0, W1= 0;int cou = 0;int m(int i, int j) { cou++; printf("m(%d, %d)\n", i, j); if (i ==原创 2012-09-17 23:30:42 · 1252 阅读 · 0 评论 -
hdu1428漫步校园
#include #include #include #include #include #include using namespace std;int n;const int maxn = 60;const int INF = 0x7fffffff;struct node { int x, y; int d; int mind;};const int dx[]原创 2013-08-06 14:41:03 · 994 阅读 · 0 评论 -
POJ1141 Brackets Sequence
区间DP原创 2014-04-13 15:02:48 · 759 阅读 · 0 评论