这个要用动态规划,呵呵:这道题要用到迭代加深搜索(DFSID)。由于要求输出的是使用最少的牛奶桶,所以要先找牛奶桶数量为1的时候所有的组合,如果没有解再找牛奶桶数量为2...直到牛奶桶数量为P。当搜索到一个组合,判断用这些牛奶桶是否能组成目标解的时候,可以用动态规划的方法来做。设f[i]是当需求的牛...
分类:
其他好文 时间:
2014-10-21 22:51:13
阅读次数:
383
现在要把这几种常见的算法给理清弄明白了,要不然只能做个低级程序员了。
动态规划DP是求解决策过程的最优化的数学方式。动态规划一般分为线性动规,区域动规,树形动规,背包动规。
动态规划是一种方法,但不是一种算法,一般用于多决策中的最优化问题,具有递推的思想。动态规划与分治法类似,基本思想都是把待解问题分解成若干个子问题,先求解子问题,然后由这些子问题的解得到原问题的解。但分治法中分解得到...
分类:
其他好文 时间:
2014-10-21 21:35:23
阅读次数:
214
采用的的是小牛的写法,蒟蒻第一次写。。
RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j
这里介绍ST算法:采用动态规划的思想:详见
士兵杀敌(三)
时间限制:2000 ms | 内存限制:65535 KB
难度:5
描述
南将军统率着N个士兵,士兵分...
分类:
编程语言 时间:
2014-10-21 01:05:37
阅读次数:
227
昨天刷水累死蒟蒻了。。。每天一到题解总还是要写的。。。于是就是这个了!二维RMQ,第一反应是二维线段树,妥妥MLE + TLE想起来去年市选小题有一道一模一样的,我当时就是写二维线段树,然后MLE0分、、、真是悲剧发现长度是固定的为n,和动态规划的某个叫单调队列的优化很像:先求出每一列的某个点向下n...
分类:
其他好文 时间:
2014-10-20 22:46:03
阅读次数:
242
#include
#include
#include
#include
using namespace std;
const double eps = 1e-6;
const int inf = 0x3f3f3f3f;
int n,m;
int f[100];
struct point{
double x,y;
point(double xx = 0,double yy = 0)...
分类:
其他好文 时间:
2014-10-20 21:24:50
阅读次数:
276
0/1背包问题的动态规划法求解,前人之述备矣,这里所做的工作,不过是自己根据理解实现了一遍,主要目的还是锻炼思维和编程能力,同时,也是为了增进对动态规划法机制的理解和掌握。 值得提及的一个问题是,在用 JAVA 实现时, 是按算法模型建模,还是用对象模型建模呢? 如果用算法模型,那么 背包的值、重量...
分类:
编程语言 时间:
2014-10-20 20:56:06
阅读次数:
259
题目链接:http://poj.org/problem?id=2923题目的大概意思是,有两辆车a和b,a车的最大承重为A,b车的最大承重为B。有n个家具需要从一个地方搬运到另一个地方,两辆车同时开,问最少需要搬运几次?我先想的是我由A车开始搬,搬运能装的最大的家具总重,然后状态压缩记录下搬运了哪些...
分类:
其他好文 时间:
2014-10-20 19:07:01
阅读次数:
237
算法1. 图搜索(广度搜素、深度搜索)深度优先特别重要2. 排序3. 动态规划4. 匹配算法和网络流算法5. 正则表达式和字符串匹配6. 三路划分-快速排序7. 合并排序(更具扩展性,复杂度类似快速排序)8. DF/BF 搜索 (要知道使用场景)9. Prim/Kruskal(最小生成树)10. D...
分类:
其他好文 时间:
2014-10-20 17:02:54
阅读次数:
212
一、基本概念
动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。
二、基本思想与策略
基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有...
分类:
编程语言 时间:
2014-10-20 15:08:21
阅读次数:
211
题目大意:每个单词都有一个值,从A、B…到Z的值分别为1、2…到26
现在给你26个字母每个字母的个数,问:能找到多少个字母总价值<=50
的单词数。(单词排列顺序无关,ACM和CMA和AMC都视为同一个单词)
思路:很多人都是用母函数做的,这里说下动态规划的思想。
把A、B…到Z看做26种物品,每种物品的价值为1、2…到26,每种物品的
个数有num[i]个。现有一个容量为50的背包,问有多少种装法,能满足背
包中总价值<=50
过程:开个二维数组,一维26个表示字母种类,二维50个表示价值。最后
从1-...
分类:
其他好文 时间:
2014-10-20 11:47:56
阅读次数:
234