已知一些单词,选择其中一些单词组成目的字符串,问共有多少种方法。其实初看到这道题,自然而然地可以想到动态规划中经典的硬币问题:例如,问1元,2元,5元,总共有多少种方法能组成20元?这里不过是把硬币换成了单词而已。但是,如果真的只是像硬币问题一样每个单词都轮询一遍,显然太慢了,最多要有300000*4000*100次比对。
假如利用trie数的话,至多只要比对100次,就能找到所有...
分类:
其他好文 时间:
2015-04-10 22:08:29
阅读次数:
123
有1元,5元,10元,50元,100元,500元的硬币各C1 C5 C10 C50 C100 C500枚,现在要用这些硬币支付A元至少需要多少枚硬币?#includeint A;int b[6];const int a[6]={500,100,50,10,5,1};void f(){ int ...
分类:
其他好文 时间:
2015-04-10 01:14:24
阅读次数:
144
问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。 其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。 当小明对所有硬币都进行了一...
分类:
其他好文 时间:
2015-02-20 19:44:25
阅读次数:
249
背包问题是动态规划的经典问题,因此,有必要弄清跟背包问题的所有分析过程并熟练掌握各种类型的代码
一,完全背包问题
1.问题描述:有n种物品,每种物品有无限多个,第i个物品重量是wi,价值是vi,从这些物品中挑选总重量不超过W的物品,求出挑选物品价值的最大值。
限制条件:1≤n≤100,1≤wi,vi≤100,1≤W≤10000
2.解题思路:本题类似于“硬币问题”,硬币问题只要求凑够...
分类:
其他好文 时间:
2015-02-12 16:23:47
阅读次数:
408
问题:有1997枚硬币,其中1000枚国徽朝上,997枚国徽朝下.现要求每一次翻转其中任意6枚,使它们的国徽朝向相反,问能否经过有限次翻转之后,使所有硬币的国徽都朝上?给出你的结论,并给予证明.
答案:不能。
证明:将国徽朝上的标注“1”.朝下的标注“-1”,则1997枚硬币的国徽朝向情况可用算式1^1000*(-1)^997=-1表示;这些数积为-1(或1),表明有奇数(或偶数)枚国徽朝下;...
分类:
其他好文 时间:
2015-02-12 00:49:56
阅读次数:
119
小明有1.15美元硬币,他却无法把1美元、50美分,25美分,10美分,5美分换成硬币,小明有哪些硬币?分别有多少枚?
答案:50美分1枚,25美分1枚,10美分4枚。
分析:如果小明换不了1美元,那么他拥有的50美分硬币不会超过1枚;如果他换不了50美分,那么他拥有的25美分硬币不会超过1枚,10美分硬币不会超过4枚;10美分换不了,意味着他的5美分硬币不会超过1枚;5美分换不了,他的...
分类:
其他好文 时间:
2015-02-10 15:27:56
阅读次数:
166
很多动态规划问题都可以转化为DAG上的最长路,最短路,或路径计数问题。硬币问题:有N中硬币,面值分别为v1,v2,v3,……vn,每种都无穷多,给定非负整数S,可以选用多少个硬币,使他们的总和恰好为S。输出硬币数目的最小值和最大值。解:每种面值看作一个点,表示:还需要凑足的面值。则开始状态为S,目标...
分类:
其他好文 时间:
2015-02-02 21:26:26
阅读次数:
154
题目链接:点击打开链接
换硬币问题。不过存在分,所以是小数输入,一开始因为精度问题wa一发。而且。。计数用long long。。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#de...
分类:
其他好文 时间:
2014-12-05 21:24:09
阅读次数:
176
题目链接:点击打开链接
还是硬币问题。只不过多了一个限制条件是要求组成n的硬币个数不超过100.考虑dp ,可以在一维的基础上增加一个维度,即设 dp[i][j] 为所用硬币为i个表示j 的种类数 。
dp[i][j]=dp[i][j]+dp[i-1][j-v[k]],依旧是枚举硬币种类。
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2014-12-04 15:42:31
阅读次数:
145
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1398背包的硬币问题代码#include#includeint main(void){ int i,j,k,n; int dp[310]; int a[20]; for(i=1;i<...
分类:
其他好文 时间:
2014-11-25 23:29:42
阅读次数:
222