自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 动态规划入门之嵌套矩形

嵌套矩形描述:有n 个矩形,每个矩形可以用a; b 来描述,表示长和宽。矩形X(a; b) 可以嵌套在矩形Y (c; d)中当且仅当a 但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。输入:第一行是一个正整数N(0 个正正数n,表示该组测试数据中含有矩形的个数(n a; b(0 输出:

2013-12-28 19:41:23 649

原创 动态规划入门之完全背包

完全背包问题(UKP, unbounded knapsack problem):每种物品都有无限个可用 最简单思路就是把完全背包拆分成01背包,就是把01背包中状态转移方程dp[i][j]=dp[i-1][j-w[i]]+v[i]相应的做点修改,也就是说01背包只考虑放与不放进去两种情况,而完全背包要考虑 放0、放1、···、放j/w[i] 的情况。            for (i

2013-12-26 14:59:46 1789

原创 动态规划入门之01背包

描述:有N 种物品,第i 种物品的重量为wi,价值为vi,每种物品只有一个。背包能承受的重量为W。将哪些物品装入背包可使这些物品的总重量不超过背包容量,且价值总和最大?输入:第1 行包含一个整数T,表示有T 组测试用例。每组测试用例有3 行,第1 行包含两个整数N;W(N  1000;W  1000) 分别表示物品的种数和背包的容量,第2 行包含N 个整数表示每种物

2013-12-26 13:39:55 466

原创 动态规划入门之最大M子段和

求最大M子段,,又是典型的动态规划例题,做起来的第一感觉就是跟前两道题有点不一样。。 状态变量:  dp[m][n]表示要取m段,并且最后一段包括a[n-1] 的最大子段和状态转移方程:dp[i][j] = dp[i][j - 1] + a[j - 1];                                  //a[j-1] 直接加入到第i段中for(

2013-12-24 17:47:43 765

原创 动态规划入门之LCS

求最长公共子序列,可以用典型的动态规划解法,上一篇求字符串编辑距离的dp解法也可以说是由这个案例变形而来。 状态变量: dp[i][j]表示字符串a[i]和字符串b[j]的最长公共子序列 状态转移方程:if(a[i-1]==b[j-1]) dp[i][j]=dp[i-1][j-1]+1;else dp[i][j]=max{dp[i-1][j],dp[i][j-1]};

2013-12-24 15:07:12 464

原创 动态规划入门

动态规划思路流程:(1)确定问题的决策对象。(2)对决策过程划分阶段。 (3)对各阶段确定状态变量。(4)根据状态变量确定费用函数和目标函数。(5)建立各阶段状态变量的转移过程,确定状态转移方程。 适用条件:任何思想方法都有一定的局限性,超出了特定条件,它就失去了作用。同样,动态规划也并不是万能的。适用动态规划的问题必须满足最优化原理和无后效性。1.最优化原理(

2013-12-24 14:48:10 551

原创 求序列第K大数 POJ2104

在POJ2104中,由于会给定序列的区间,而且是多次查询,所以像快速排序加二分这种分治算法的时间效率就不算很高了,然后自己尝试用二叉搜索树保存数据,粗略的写了个java代码: import java.util.Arrays;import java.util.Scanner;/** * * @author Sot_fzh */public class Poj2104

2013-12-05 18:41:59 662

转载 主定理笔记(master theorem)

T(1)=d and for n>1,T(n)=aT(n/b)+cn n is a power of b;prove z if az if a=b, T(n)=O(nlogn); z if a>b, T(n)=O(nlogba)//b为底 logba 为n的次数由问题有 T(1)=d T(n)=aT(n/b)+cn,且有n=b^a 这个递推式描述了大小为

2013-12-03 19:17:27 1203

原创 求序列第K大数的部分快速排序法

用的是经典快速排序方法,每次快排都可以确定一个键的位置,得到关键字的下标,则可判断需要找的第K小的数在其左边还是右边,然后继续快排,直至找到恰好等于关键字为止。。 快速排序的基本思想是:每次从无序的序列中找出一个数作为中间点(可以把第一个数作为中间点),然后把小于中间点的数放在中间点的左边,把大于中间点的数放在中间点的右边;对以上过程重复log(n)次得到有序的序列。平均情况下它的时间

2013-12-03 19:14:27 1343

原创 递推之整数划分问题(2)

整数划分问题的递推式dp( i , j )=dp(i-j,j)+dp(i,j-1);        这里没有限制容器数量,所以与上一题的递推式{dp(i,j)=dp(i-1,j-1)+dp(i,j-i)}有所不同。该递推式的含义由于理解的不同所以因人而已,网上主流的理解方法:dp( i , j )代表一个数值i它可被划分为一个或多个小于等于j的数的方案数,它的递推式更容易理解,就是

2013-12-03 17:23:57 615

原创 递推之整数划分问题(1)

题目大致意思应该是 分配i辆汽车搬运j台电脑的问题,与整数分解类似可以用递推来解决。 关键代码:    public int trans(int i,int j){     //i辆车 j台电脑        if(j        if(i==1){            return 1;        }        return trans(i-1,j-1

2013-12-03 16:40:53 726

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除