
ACM
文章平均质量分 77
LG_mind
这个作者很懒,什么都没留下…
展开
-
poj 2299 树状数组+离散化
POJ2299 Ultra-QuickSort题意:给定n个数组成的序列,要求求出将该序列重排成升序所需最小步数(每次只能交换相邻两个数的位置)数据范围: n 解析: 本题就是求该序列的逆序数,但数据范围较大,普通方法时间代价较高,选用数状数组实现,同时注意到a[i]的范围远大于n,采用离散化优化代码:// 原本采用qsort函数排序,但原创 2012-11-04 16:27:48 · 326 阅读 · 0 评论 -
POJ 1195 Mobile phones
POJ 1195 Mobile phones题意: 一个二维数组,所有的数初始为0,会有两种操作:把某一个元素加上一个数(可负);查询某一块方形区域所有数的和。要求程序返回查询结果。数据范围: 数组没一维大小 S 解析: 二维树状数组的纯模版题,没什么好说的。代码:#include #include #define MAX原创 2012-11-04 16:43:24 · 328 阅读 · 0 评论 -
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 · 315 阅读 · 0 评论 -
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 · 332 阅读 · 0 评论 -
POJ 1095 卡特兰数
题目链接POJ 1095 Trees Made to Order题意:对二叉树按一定规则编号,对给定编号N(1 解析:这是碰到的第一个卡特兰数相关的题,不过涉及不深,只要稍微了解就足够了。算法就是对给定编号,由卡特兰数推出其左右子树编号即可递归得解。难点就是左右子数编号的求解,网上的题解大都是直接应用了如我代码中的公式,并未解释公式的来历,这给像我这样的新手造成了不小的困扰原创 2012-11-17 15:12:03 · 808 阅读 · 1 评论 -
POJ 1384 Piggy-Bank
题目链接 POJ 1384题意:有N种钱币,每一种有面值P和重量W两种属性。现给出存钱罐净重和现重,要求往存钱罐里放钱,能使存钱罐达到这种状态的最小总面值。输入数据:第一行一个T,代表测试数据组数。第二行两个数分别代表存钱罐净重和现重。第三行一个N,表示钱币种类。以下N行,每行两个数P,W分别代表一种钱币的面值和重量。解析: 变形的完全背包问原创 2012-11-17 23:27:09 · 375 阅读 · 0 评论 -
POJ 1276 Cash Machine
题目链接:Cash Machine题意:分别给出N种货币的面值和数量,要求组合出不大于给定数额(cash)的最大的钱币总数。输入:每组数据一行,从左到右分别是:要组合出的数额cash,钱币种类数n。以后每两数一组,分别代表钱币数量和面值。解析:多重背包的变形,很巧妙的将常见的两种属性变成了一种,处理方法就是将每种货币的价值同时看成代价(因为总面值原创 2012-11-18 08:34:51 · 375 阅读 · 0 评论 -
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 · 414 阅读 · 0 评论