- 博客(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关注的人