ACM
文章平均质量分 68
她山之石
这个作者很懒,什么都没留下…
展开
-
poj 3624做题笔记
一、原题大意:N组数据,容量为M,下面每行分别为重量weight、价值values。求在容量范围内是背包所装的价值最大 二、思路:0-1背包问题,DP类题目。 状态转移方程为:dp[j]=max(dp[j],dp[j-weight[i]]+values[j]) 书上状态转移方程为:dp[i][v]=max(dp[i-1][v],dp[i-1][v-w原创 2013-08-01 21:36:38 · 742 阅读 · 0 评论 -
HDU ACM Step 2.2.2 Joseph(约瑟夫环问题)
HDU ACM Step 2.2.2:http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=2§ionid=2&problemid=2题目大意是给一个k,前k个是好人,后k个是坏人,依次不回归数数,数到m的处决,要求找到一个最小的m,使坏人们死在好人前面。这是个约瑟夫环问题。开始想用数组模拟,死掉的出队,但是超时。后来发现前原创 2015-04-11 20:57:05 · 905 阅读 · 0 评论 -
用单调栈解决最大连续矩形面积问题
单调栈单调栈是指从栈底到栈顶严格单调的栈,可用于解决最大连续矩形面积问题。poj2559:给出一个柱形统计图,它的每个项目的宽度是1, 高度给出。 现在编程求出在这个柱形图中的最大连续矩形面积。设栈内的元素为一个二元组(x, y),x表示矩形的高度,y表示矩形的宽度。 矩形初始高度分别为2,1,4,5,1,3,32进栈:(2,1)1准备进栈,14进栈:(1.2)原创 2014-04-06 19:33:59 · 2594 阅读 · 0 评论 -
前缀表达式,中缀表达式,后缀表达式转化和计算
前缀表达式,中缀表达式,后缀表达式转化和计算1、定义 前缀表达式(波兰表达式)就是不含括号的算术表达式,而且它是将运算符写在前面,操作数写在后面的表达式,也称为波兰表达式。例如,- 1 + 2 3,它等价于1-(2+3)。 后缀表达式(逆波兰表达式)运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序 中缀表达式就是我们日常使用的,如:(2 + 1) * 3 。原创 2014-03-04 17:10:54 · 4216 阅读 · 0 评论 -
zoj3549 快速幂
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3549一般算a^b是用这种方法int pow( int a, int b ){ int r = 1; while( b-- ) r *= a; return r;}时间复杂度为O(n)。当b比较大时就不行了,原创 2013-10-22 22:30:35 · 771 阅读 · 0 评论 -
HDU 1717 小数化分数2 做题笔记
将有限小数化为分数的方法都知道,就是分子分母同时除以他们的最大公约数,不提。无限循环小数化为分数的方法就是将这个数分别乘以10的倍数2次,使乘以的2个数的小数相同,然后相减约去小数,再算得。如:将x=23.37(593)化为分数。100*x=2337.593593······,100000*x=2337593.593593······。则100000x-100x=2337593-2337,原创 2013-09-16 20:28:00 · 815 阅读 · 0 评论 -
poj 1065做题笔记
用到了dilworth定理:链的最少划分数=反链的最长长度(没有验证过)。如4、1、5、9、2的最少的非递减子序列的个数就是其最大递减子序列长度。采用两种方法具体见:poj 2533做题笔记。前一个110MS,后一个16MS。差别还是蛮大的。代码如下:#include#include#includeusing namespace std;const int N=5010;原创 2013-09-03 20:29:17 · 604 阅读 · 0 评论 -
poj 2533做题笔记
本题是求最长上升子序列(LIS)问题。O(n^2)的思路: 令a[i]表示第i个元素,d[i]表示从a[1]到a[i]中以a[i]结尾的最长子序列长度。对于任意的0 a[j],则a[i]可以接在a[j]后面形成一个以a[i]结尾的新的最长上升子序列。DP状态转移方程: d[i] = max{d[i], d[j] + 1} (j = 1, 2, 3, ...,i-1 且a[j] 解原创 2013-09-03 17:06:44 · 576 阅读 · 0 评论 -
hdu 1236做题笔记
开始自己写排序,WR到老家了,总是找不出错误,只好用srot了。看来以后也该学一学用一用stl了。不用多说,上代码。AC代码如下:#include#include#includeusing namespace std;struct node{ char name[22]; int counts;}student[1010];bool cmp(node a,node b){原创 2013-08-31 18:31:35 · 553 阅读 · 0 评论 -
hdu 1084做题笔记
题意是:有N个人做5道题,给出做出题的个数和花费的总时间,做出5道题给100分,做出4道题给95或90,类推。如果有>=2个人做出题的数目一样,则取前n/2的人较多的分数,如有3个人做出4道题,则第一得95分,其他得90分。主要用的是sort函数。AC代码如下:#include#include#includeusing namespace std;const int N=101;原创 2013-09-02 20:17:06 · 731 阅读 · 0 评论 -
poj 1384做题笔记:对01背包和完全背包的认识
题意大概是给出储钱罐的最小重量e和最大重量f,再给出钱币的重量和价值,求重量最大时的最小价值。完全背包问题,不解释,套模板吧。#include#include#include#define maxint 100000000using namespace std;int minx(int i,int j){ return i<j?i:j;}int main(){ int原创 2013-08-04 14:54:03 · 678 阅读 · 0 评论 -
HDU1568(Fobonacci公式)
HDU 1568:http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=2§ionid=2&problemid=1题目大意是算出第0~100000000个斐波那契数列的高4位数。高4位不同于低4位,要考虑进位问题,不能直接取模。时间要求1s,空间要求32MB,O(n)的方法肯定超时,也不能存数组。就只剩下公式了。斐波原创 2015-04-11 13:25:22 · 644 阅读 · 0 评论