本月博客排行
-
第1名
wy_19921005 -
第2名
mft8899 -
第3名
java-007 - Anmin
年度博客排行
-
第1名
龙儿筝 -
第2名
宏天软件 -
第3名
benladeng5225 - wy_19921005
- vipbooks
- 青否云后端云
- kaizi1992
- e_e
- tanling8334
- sam123456gz
- arpenker
- zysnba
- fantaxy025025
- xiangjie88
- wallimn
- lemonhandsome
- jh108020
- ganxueyun
- Xeden
- zhanjia
- xyuma
- wangchen.ily
- johnsmith9th
- zxq_2017
- forestqqqq
- jbosscn
- daizj
- ajinn
- xpenxpen
- 喧嚣求静
- kingwell.leng
- lchb139128
- kristy_yy
- jveqi
- javashop
- lzyfn123
- sunj
- yeluowuhen
- lerf
- silverend
- xiaoxinye
- chenqisdfx
- flashsing123
- bosschen
- lyndon.lin
- zhangjijun
- sunnylocus
- lyj86
- paulwong
- sgqt
最新文章列表
组合问题 之 罗列特定和的数字组合方式
package com.test.algorithm.dp;
import java.util.HashSet;
import java.util.Set;
/**
* @author hawkinswang
*
* 01背包问题:在指定数组中挑选任意组合,让它们的和等于一个特定值,列出所有组合方式
* 使用动态规划方法解决,状态转移方程 ...
【转】Java动态规划 实现最长公共子序列以及最长公共子字符串
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp96
经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。
为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对 ...
背包之01背包、完全背包、多重背包和混合背包
01背包(ZeroOnePack):
f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
完全背包(CompletePack):
f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i]|0
多重背包(MultiplePack):
f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i]|0
混合背包
for i=1..N ...
[动态规划] 数字三角形问题(一维数组实现)
数字三角形问题:一个数字三角宝塔。设数字三角形中的数字为不超过100的正整数。现规定从最顶层走到最底层,每一步可沿左斜线向下或右斜线向下走。假设三角形行数小于等于100.编程求解从最顶层走到最底层的一条路径,使得沿着该路径所经过的数字的总和最大,输出最大值。
例如一个行数为5的三角形如下:
7
3 8
8 1 ...
hdu 1158 Employment Planning (动态规划)
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1158
解题报告:自我感觉这道题目的状态方程不太容易。
刚开始用一维的搞,这么也得不到正确答案,后来想有月份、人数,应该用二维的。
首先雇主要在第n月花钱最少,一定是在第n-1月花钱也是最少,一定具有最有子结构,可以想到动态规划;
如果第n个月的需要的人数比第n-1个月的多,则需要 ...
hdu 1081 To The Max (动态规划)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1081解题报告:求最大的矩阵和的问题,可以转化为最大连续子序列和的模型,只不过这个是一个二维的问题。如何转化是关键:我们可以把每一项变成前面多项的和,通过相减计算每个子矩阵。在求解的时候竖着求解,这样子问题就转换为1维求解最大连续子序列和的问题。给一组参考数据:4-3 -7 -1 -2-3 -4 - ...
再谈大楼扔鸡蛋的问题
这道题是说,100层楼,两个一模一样的鸡蛋,某层之上扔鸡蛋就会碎。问要测试多少次才能找出这层楼来。我曾经在去年初的这篇文章里面讨论过这个问题的解法,因为只想记录一下思路和讨论过程,写得很简略。现在,我想重新整理一下这个问题,再稍稍扩展和挖掘一下。希望可以用尽可能清晰易懂的描述,把这个问题的前后说清楚。
现在只有两个鸡蛋,而算法必须是可行的,就是说要能找出这一层来,所以你得假设你的运气最差,这就意 ...
动态规划通用算法的java实现
谁说动态规则算法不能通用?我写了个通用算法,不知道能否通用,欢迎交流qq 15367481。
使用示例:
//定义状态
State a=new State("a"),
b1=new State("b1"),
b2=new State("b2"),
b3=new State("b3&quo ...
最长不下降子序列O(nlogn) --动态规划
题目:
设有一个正整数的序列:d1,d2,…,dn,对于下标i1<i2<…<im,若有di1≤di2≤…≤dim
则称存在一个长度为m的不下降序列。
例如,下列数列
13 7 9 16 38 24 37 18 44 19 21 22 63 15
对于下标i1=1,i2=4,i3=5,i4=9,i5=13,满足13<16<38< ...
最长上升子序列-动态规划
题目:
设有一个正整数的序列:d1,d2,…,dn,对于下标i1<i2<…<im,若有di1≤di2≤…≤dim
则称存在一个长度为m的上升序列。
例如,下列数列
13 7 9 16 38 24 37 18 44 19 21 22 63 15
对于下标i1=1,i2=4,i3=5,i4=9,i5=13,满足13<16< ...