书山有径勤为路>>>>>>>>

<<<<<<<<学海无涯苦作舟!

随笔分类 -  C DP

输入的最小按键次数
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=2577用动态规划角。on[i]表示在lock为开的时候输入第i个字符时的最小按键次数。off[i]表示在lock为关的时候输入第i个字符时的最小按键次数。View Code #include "iostream"#include "string"using namespace std;#define MAX 105int on[MAX], off[MAX];int main(){ int n; string str; cin>>n; while(n-- 阅读全文

posted @ 2012-05-13 23:03 More study needed. 阅读(330) 评论(0) 推荐(0) 编辑

滚动数组的简单应用
摘要:题目:http://acm.swust.edu.cn/oj/problem/324/View Code //1.动态范围//2.动态次数//3.动态规律//4.动态边界#include <stdio.h>#include<string.h>int main(){ int Live, Stand, Step; int f[101][2]; while(scanf("%d%d%d", &Live, &Step, &Stand)!=EOF){ memset(f, 0, sizeof(f)); f[Stand][0] = 1; int 阅读全文

posted @ 2012-05-09 23:47 More study needed. 阅读(162) 评论(0) 推荐(0) 编辑

对滚动数组的理解
摘要:滚动数组的作用在于优化空间,主要用在递推和动态规划中。因为dp题目是一个自底向上扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。滚动数组实际是一种节省空间的办法,时间上没啥优势,多用于dp.其实用一维的数组来进行的简单背包就是用了滚动数组啊。 阅读全文

posted @ 2012-05-09 22:16 More study needed. 阅读(247) 评论(0) 推荐(0) 编辑

简单多重背包(每种物品选一次)
摘要:先说一下多重背包问题。他是由完全背包而来的,但是不同的是,他的每件物品有一定的数量限量,而完全背包中每种物品可以有无限件。HDU 2660http://acm.hdu.edu.cn/showproblem.php?pid=2660题目大意:在N件物品中,最多可以选择K,在选择的K件物品中,总容量不能超过W.求选择的最大价值。本题就是一个任意组合问题了,当然除了这种解法以外还有一种解法。那就是DFS了。View Code #include<iostream>#include<cstdio>#include<cstring>#include<string& 阅读全文

posted @ 2012-03-28 18:09 More study needed. 阅读(207) 评论(0) 推荐(0) 编辑

DP(六)——多重背包的三重循环算法(效率不是很高)
摘要:POJ 2392http://poj.org/problem?id=2392题意:有一群牛要上太空,他们计划建一个太空梯(用一些石头垒), 他们有k种不同类型的石头,每一种石头的高度为h,数量为c,由于会受到太空辐射, 每一种石头不能超过这种石头的最大建造高度a,求解利用这些石头所能修建的太空梯的最高的高度.解析:多重背包问题,与一般的多重背包问题所不同的知识多了一个限制条件 就是某些"物品"叠加起来的"高度"不能超过一个值,于是我们可以对他们的最高可能达到高度进行排序, 然后就是一般的多重背包问题了.View Code #include <ios 阅读全文

posted @ 2011-11-17 20:33 More study needed. 阅读(418) 评论(0) 推荐(0) 编辑

DP(五)——简单的多重背包
摘要:POJ 1014 http://poj.org/problem?id=1014题意是这样的:有分别价值为1,2,3,4,5,6的6种物品,输入6个数字,表示相应价值的物品的数量,问一下能不能将物品分成两份,是两份的总价值相等,其中一个物品不能切开,只能分给其中的某一方,当输入六个0是(即没有物品了),这程序结束,总物品的总个数不超过20000Sample Input1 0 1 2 0 0 1 0 0 0 1 1 0 0 0 0 0 0 Sample OutputCollection #1:Can't be divided.Collection #2:Can be divided.下面一 阅读全文

posted @ 2011-11-16 21:40 More study needed. 阅读(265) 评论(0) 推荐(0) 编辑

DP(四)——简单的完全背包2
摘要:POJ 1384http://poj.org/problem?id=1384题意:用猪仔钱罐存钱会有一个严重的问题:不能随时知道里面到底有多少钱。但是,我们可以通过称量其重量,来估计一下里面的钱。现假定钱罐里的都是硬币,已知空罐的重量与现在的重量,同时,给定钱罐里可能会有的硬币的面额与重量。问钱罐中至少有多少钱。思路:从钱罐重量差可知硬币的总重量。每种硬币的数量不确定,估计时可当作有可能有无限个,由此可得完全背包模型。求的是能否组合成该重量,组合以后的最小价值。Sample Input310 11021 130 5010 11021 150 301 6210 320 4Sample Outpu 阅读全文

posted @ 2011-11-16 10:43 More study needed. 阅读(200) 评论(0) 推荐(1) 编辑

DP(三)——简单的完全背包
摘要:完全背包问题的描述:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。例子如下:30 4100 6250 12120 1035 2解释一下上面的数据:30是背包的容量100 是第一件物品的价值,6是第一件物品的重量。往下类推……View Code #include "iostream"#include "string.h"using namespace std;#define size 10005int f[size];int m 阅读全文

posted @ 2011-11-16 09:58 More study needed. 阅读(232) 评论(0) 推荐(0) 编辑

DP(二)——简单的01背包
摘要:下面来看一个简单的01背包。题目:http://acm.swust.edu.cn/oj/problem/32/View Code #include "stdio.h"#include "string.h"#define size 1000int f[size];int max(int a, int b){ return a>b?a:b;}int main(){ int t, n; while(scanf("%d%d", &t, &n)==2) { int flag = 0, cw, i, v; memset(f, 阅读全文

posted @ 2011-11-15 09:38 More study needed. 阅读(446) 评论(0) 推荐(0) 编辑

DP(一)——邮票个数的统计
摘要:本题是一道相当典型的动态规划题目,值得一看。题目:http://acm.swust.edu.cn/oj/problem/0251/我们用dp[i]线性数组来表示邮票的个数,dp[i]中的i就表示达到的面值了。也就是说当达到面值i的时候要用到dp[i]张邮票。当然,i要从1开始,这样就有了dp[1],这个过程是为了dp[2]做的铺垫,可以说这就是动态规划的精髓了。View Code #include "iostream"using namespace std;#define INF 0x7ffffff #define size 2000001int dp[size];int 阅读全文

posted @ 2011-10-29 21:44 More study needed. 阅读(303) 评论(0) 推荐(0) 编辑

动态规划解决USACO——Number Triangles
摘要:DescriptionConsider the number triangle shown below. Write a program that calculates the highest sumof numbers that can be passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right. 7 3... 阅读全文

posted @ 2011-10-16 10:50 More study needed. 阅读(911) 评论(0) 推荐(0) 编辑

动态规划解决POJ 3624
摘要:DescriptionBessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available charms. Each charm i in the supplied list has a weightWi (1 ≤ Wi ≤ 400), a 'desirability' factor Di ( 阅读全文

posted @ 2011-09-23 22:23 More study needed. 阅读(223) 评论(0) 推荐(0) 编辑

一道简单但是经典的动态规划题
摘要:描述 打败万恶的ghost以后,将军准备回寝室告诉大伙儿这个消息,没想到杯具又发生了… 你知道有种鬼叫路鬼吗?让人莫名其妙的迷路,将军就被这种鬼上身了。将军本来要上楼梯的,但是因为鬼上身,他要不就上一层楼,要不就下一层楼,这个是随机的,他不能控制自己啦! 假设将军住在第M楼,因为体力原因,将军只能上或者下N次楼,刚开始将军在K楼,假设东6宿舍共有100层。现在问当体力消耗完的时候,将军刚好回到寝室那一层有多少种可能。 例如:将军住在5楼,将军的能上/下5次楼,现在在1楼, 那么将军将回不到寝室啦,为什么?我也不知道。 输入有多组测试数据,每组测试数据共一行,为M,N,K(0 < N &l 阅读全文

posted @ 2011-09-23 22:22 More study needed. 阅读(288) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

书山有径勤为路>>>>>>>>

<<<<<<<<学海无涯苦作舟!

点击右上角即可分享
微信分享提示