自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 I 前言

本系列博客来源于coursera.org上Princeton的Algorithm I课程,也可看做另一种意义上的学习笔记。因为涉及到honor code,如果有读者发现本博客出现不恰当内容,还请通知笔者,以便及时改正;同时欢迎各位读者参与讨论具体算法或对问题的解决思路,但还请不要在讨论中直接出现实现代码。同时由于博主本身水平有限,有心的读者可以去C站直接学习该课程,这也算是对C站的推广吧。如果

2013-09-15 00:16:59 422

原创 POJ 2063 Investment

题目链接:Investment解析:W可变的完全背包问题,设dp[v]表示i的金额完全用掉能得到的利息,W[i]表示i的代价,P[i]代表i的价值,则状态转移方程就是dp[v] = MAX(dp[v],dp[v - W[i]] + P[i]);输入:测试数据组数T;初始金额v,年限m;(v )可用投资数N; N 10一下N

2012-11-18 09:42:55 358

原创 POJ 1276 Cash Machine

题目链接:Cash Machine题意:分别给出N种货币的面值和数量,要求组合出不大于给定数额(cash)的最大的钱币总数。输入:每组数据一行,从左到右分别是:要组合出的数额cash,钱币种类数n。以后每两数一组,分别代表钱币数量和面值。解析:多重背包的变形,很巧妙的将常见的两种属性变成了一种,处理方法就是将每种货币的价值同时看成代价(因为总面值

2012-11-18 08:34:51 335

原创 POJ 1384 Piggy-Bank

题目链接 POJ 1384题意:有N种钱币,每一种有面值P和重量W两种属性。现给出存钱罐净重和现重,要求往存钱罐里放钱,能使存钱罐达到这种状态的最小总面值。输入数据:第一行一个T,代表测试数据组数。第二行两个数分别代表存钱罐净重和现重。第三行一个N,表示钱币种类。以下N行,每行两个数P,W分别代表一种钱币的面值和重量。解析: 变形的完全背包问

2012-11-17 23:27:09 337

原创 POJ 1095 卡特兰数

题目链接POJ 1095 Trees Made to Order题意:对二叉树按一定规则编号,对给定编号N(1 解析:这是碰到的第一个卡特兰数相关的题,不过涉及不深,只要稍微了解就足够了。算法就是对给定编号,由卡特兰数推出其左右子树编号即可递归得解。难点就是左右子数编号的求解,网上的题解大都是直接应用了如我代码中的公式,并未解释公式的来历,这给像我这样的新手造成了不小的困扰

2012-11-17 15:12:03 677 1

原创 POJ 2352 Stars 树状数组

POJ 2352 Stars题意: 二维坐标平面上有一些星(*) ,问每个星左下方有多少个星解析: 树状数组的另一类用法,不过由于题目保证星的输入顺序是已排列好的,使难度降低到了模版题一般代码: #include #include #define MAXN 20000int C[MAXN*2];int ans[MAXN]; //a[i]

2012-11-04 17:18:21 283

原创 POJ 2029 Get Many Persimmon Trees 二维树状数组(水)

POJ 2029 Get Many Persimmon Trees题意:一个二维数组(田地),每一元素只有0或1(有或没有柿子树),问能用给定的大小围住柿子树个数的上限数据范围: 数组每一维大小N  解析:   二维树状数组的模版题PS:由于OJ上数据弱,还是算作水过,囧.#include #include #define MAXN

2012-11-04 17:03:14 291

原创 POJ 1195 Mobile phones

POJ 1195 Mobile phones题意: 一个二维数组,所有的数初始为0,会有两种操作:把某一个元素加上一个数(可负);查询某一块方形区域所有数的和。要求程序返回查询结果。数据范围:  数组没一维大小   S 解析:   二维树状数组的纯模版题,没什么好说的。代码:#include #include #define MAX

2012-11-04 16:43:24 298

原创 poj 2299 树状数组+离散化

POJ2299 Ultra-QuickSort题意:给定n个数组成的序列,要求求出将该序列重排成升序所需最小步数(每次只能交换相邻两个数的位置)数据范围: n 解析:      本题就是求该序列的逆序数,但数据范围较大,普通方法时间代价较高,选用数状数组实现,同时注意到a[i]的范围远大于n,采用离散化优化代码://  原本采用qsort函数排序,但

2012-11-04 16:27:48 290

空空如也

空空如也

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

TA关注的人

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