PKU
文章平均质量分 73
Mei废话
这个作者很懒,什么都没留下…
展开
-
PKU 2063 Investment
题目:http://poj.org/problem?id=2063 题意:Jone 有M钱,有d种股票,给出每种股票的价值和年利息,给你y年的时间,使你的钱最多。 思路:典型的完全背包,可以参见背包九讲,需要注意的是The value of a bond is always a multiple of $1000,就是股票的价值是1000的倍数,这样就可以降低 时间复杂度了。。。。原创 2013-03-31 20:03:33 · 833 阅读 · 0 评论 -
PKU 3624 Charm Bracelet
题目:http://poj.org/problem?id=3624 裸的0-1背包问题 #include #include #include using namespace std; const int maxn=12880; const int maxm=3500; int n, m; int dp[maxn+10], w[maxm+10], d[maxm+10]; in原创 2013-03-28 20:13:42 · 604 阅读 · 0 评论 -
PKU 1083 Moving Tables
题目:http://poj.org/problem?id=1083 题意:有两排房间,每排200个房间,现在要搬桌子,每搬一次花费10分钟,同一段走廊不能同时使用,求至少花费多长时间。 思路:因为每搬一次桌子就要使用一次s到j的走廊,因此,每次s到j的区间加1,最后求出使用次数最多的*10,即为答案。 需要注意的是,当s为偶数的时候,s--,当t为奇数的时候, t++; #incl原创 2012-12-08 21:16:42 · 544 阅读 · 0 评论 -
PKU 1018 Communication System
题目:http://poj.org/problem?id=1018 题意:有一个系统有n个设备,每个设备有m个制造商,每个制造商制造的设备的最大带宽和价值是不同的, 题目要求计算n个设备组成的系统中最小的带宽和总价值的最大值,有点绕~~ 思路:选出所有设备的最大带宽和最小带宽,然后从最小带宽枚举到最大带宽,找出每种设备价值最小切带宽大于当前当前带宽~~ #include #in原创 2012-12-08 18:52:29 · 697 阅读 · 0 评论 -
PKU 2761 Feed the dogs
题目:http://poj.org/problem?id=2761 题意:有n个数,给m个区间,求这m个区间的地K大值 思路:裸划分树,与2104相同~~ #include #include #include using namespace std; const int maxn=100000; int n, m, a, b, c; int sorted[m原创 2012-11-14 19:41:48 · 516 阅读 · 0 评论 -
PKU 1651 Multiplication Puzzle
题目:http://poj.org/problem?id=1651 题意:有n个数,取走一个数,计算这个数和他左右两边数的乘积,不允许取最左边和最右边的数,求每次所得的数和的最小值。 思路:不知道怎么DP, 看了discuss, 原来跟矩阵链乘一样,里边分析的很明白了 贴出来~~~, 学习 对于整个牌的序列,最左端和最右端的牌是不能被取走的,除这两张以外的所有牌 ,必然有一张最后取走。取走这原创 2012-11-14 19:24:03 · 493 阅读 · 0 评论 -
PKU 2104 K-th Number
题目:http://poj.org/problem?id=2104 借此题学习了一下划分树 划分树定义: 他的每个节点保存【l, r】区间的所有元素,元素的排列顺序与输入的顺序相同,但是其两个子树的元素是所有元素排序后, 有(l+r)/2个元素进入左子树,其余的进入右子树,同时 维护一个num[]变量, num[i]表示l->i中, 有多少个元素进入了左子树。 红色代表进入左子树的元素原创 2012-10-27 20:45:51 · 1105 阅读 · 0 评论 -
PKU 1389 Area of Simple Polygons
题目:http://poj.org/problem?id=1389 题意:给出n个矩形的左下角和右上角,求出所有矩形面积的并 思路:线段树+离散化+扫描线 #include #include #include using namespace std; const int maxn=2000; struct SegMentTree { int l, r, cover, le原创 2012-09-01 12:52:29 · 455 阅读 · 0 评论 -
PKU 1151 Atlantis
题目:http://poj.org/problem?id=1151 题意:求矩形并的面积 思路:线段树+离散化+扫描线 #include #include #include #include using namespace std; const int maxn=200; struct SegmentTree { int l, r, cover; double len, sum;原创 2012-08-31 13:46:38 · 599 阅读 · 0 评论 -
PKU 1177 Picture
题目:http://poj.org/problem?id=1177 题意:墙上贴着一些海报、照片等矩形,所有的边都为垂直或水平。每个矩形可以被其它矩形部分或完全遮盖,所有矩形合并成区域的边界周长称为轮廓周长。 思路:见陈宏论文//一维数组 #include #include #include #include using namespace std; const int max原创 2012-08-29 22:14:10 · 572 阅读 · 0 评论 -
PKU 2352 Stars
题目:http://poj.org/problem?id=2352 题意:平面上有n个星星,每个星星的等级是比该星星的X和Y坐标都小的星星的个数,给出每个星星的坐标(按y轴升序),输出等级0~n-1每个等级的星星个数。 思路:线段树,因为y轴升序给出,我们只考虑x轴就可以, 每次查询只需要查询0~x区间的个数即可。 #include #include const int maxn=320原创 2012-08-06 13:44:05 · 882 阅读 · 0 评论 -
PKU 2947 Widget Factory
题目:http://poj.org/problem?id=2947 题意:工人生产不同的部件需要不同的时间,最少需要3天,最多需要9天。 现有给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟别所属的种类。 最后求出生产这n种部件分别所需要的时间。 思路:高斯消元,设每种部件生产一个所需原创 2012-07-24 22:33:50 · 748 阅读 · 0 评论 -
PKU 3185 The Water Bowls
题目:http://poj.org/problem?id=3185 题意:有20只碗排成一排, 奶牛翻转其中的一只碗, 其左右的碗都会跟着翻转,现在给出20只晚的初始状态,问需要至少多少次的翻转才能使所有碗都朝上。 思路:高斯消元+枚举自由变元。很容易想到如何建立方程组,一共有20个变元和20个方程组,如果有多个自由变元,需要枚举自由变元算出翻转次数,然后取最小值~~~ #include原创 2012-07-25 08:46:29 · 553 阅读 · 0 评论 -
PKU 1166 The Clocks
题目:http://poj.org/problem?id=1166 题意:给出9个时钟的状态和9种操作,每种操作可以改变不同的时钟的状态,每次只能改变90度,输出最少的有序的操作序列 思路:枚举出每种操作的次数,最多为3次,保存在num数组中,判断每个时钟经过9种,每种num[j]次操作,是否为0. #include #include int flag; int state[9],原创 2012-07-31 18:38:54 · 650 阅读 · 0 评论 -
PKU 1830 开关问题
题目:http://poj.org/problem?id=1830 学完高斯消元做的第一题, 高斯消元的难点在于怎样建立方程组,来建立系数矩阵。如何建方程组:http://blog.csdn.net/shiren_Bod/article/details/5766907,写的很好, 学习了~~。 此题需要注意的是,初始化矩阵时,开关I和J不要弄反了~~~ 如果有自由变元,返回1原创 2012-07-23 11:49:59 · 510 阅读 · 0 评论 -
PKU 3468 A Simple Problem with Integers
题目:http://poj.org/problem?id=3468 题意:有N个整数,有两个操作,一个是对给定的区间增加值,一个是查询给定区间的和 #include const int maxn=100000; struct SegmentTree { int l, r; long long sum, lazy; }st[maxn<<2]; long long z[maxn+10], a原创 2012-08-02 22:03:27 · 399 阅读 · 0 评论 -
PKU 1014 Dividing
题目:http://poj.org/problem?id=1014 题意:有6个物品,价值分别为1、2、3、4、5、6,输入6个数,代表相应的物品的个数,问的是 能不能物品分成两份,每份的价值总和相同。 思路:深搜或多重背包~~~ 好久没写了 生啊~~~ //深搜 #include #include int array[10]; int a, b, c, d, e, f; int原创 2013-03-27 19:50:21 · 748 阅读 · 0 评论