题目描述:现有八枚银币abcdefgh,已知其中一枚是假币,其重量不同于真币,但不知是较轻或较重,如何使用天平以最少的比较次数,决定出哪枚是假币,并得知假币比真币较轻或较重。解法:单就求假币的问题是不难,但问题限制使用最少的比较次数,所以我们不能以单纯的回圈比较来求解,我们可以使用决策树(decis...
分类:
其他好文 时间:
2014-07-03 22:46:04
阅读次数:
257
兑换硬币问题,是贪婪算法的经典问题,本文不仅用python演示了这个算法,更指出此算法存在的问题,即不一定得到的结果都是最优解。...
分类:
其他好文 时间:
2014-06-18 11:23:08
阅读次数:
222
题目:有n种物品,每种物品都有无限件可用。第i种物品的体积是vi,重量是wi。选一些物品装到一个容量为C的背包中,使得背包内物品在总体积不超过C的前提下重量尽量大。
分析,完全背包问题,相对于上上篇文章的硬币问题,只是由DAG上的无权图变成了这里的DAG上的带权图!
输出最后满足体积不超过背包容量的条件下,背包中的最大重量。
代码:
#include
#include
using...
分类:
其他好文 时间:
2014-06-16 11:59:00
阅读次数:
221
题目:有n种硬币,面值分别为V1,V2,...Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值!
分析:我们把每种面值看作一个点!表示“还需要凑足的面值”,初始状态为S,目标状态为0。那么若当前状态在i,每使用一个硬币j,状态便转移到i-Vj。
代码:
记忆化搜索:
#include
#include
using n...
分类:
其他好文 时间:
2014-06-10 18:45:32
阅读次数:
315
Given an infinite number of quarters (25 cents),
dimes (10 cents), nickels (5 cents) and pennies (1 cent), find how many ways to
represent n cents.思路:...
分类:
其他好文 时间:
2014-06-09 20:04:56
阅读次数:
238
问题描述:
有n中硬币,面值分别为V1,V2...,Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值。0
分析:
本题的本质还是DAG上的路径问题。我们把每种面值看作一个点,表示"还需要凑足的面值",则初始状态为S,目标状态为0。若当前的状态i,每使用一个硬币j,状态便转移到i-Vj。这个模...
分类:
其他好文 时间:
2014-05-22 12:15:11
阅读次数:
266
这题跟上两题也差不多。把150以内的素数找出来,把素数的值看做硬币的面值,每个硬币的个数即ceil(150/prime[i]),因为再多也没用,最多组成n=150就行了,所以又回到了找硬币问题。用生成函数解之。代码:#include
#include #include #include #inclu...
分类:
其他好文 时间:
2014-05-14 22:43:11
阅读次数:
404
利用减治法实现8枚硬币问题:参考资料:http://blog.csdn.net/wwj_748/article/details/8863503
算法设计--八枚硬币问题 1 #include "stdafx.h" 2 #include 3 #include 4 using namespace ...
分类:
其他好文 时间:
2014-04-29 18:18:17
阅读次数:
510