摘要: 【问题描述】 OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。 工资的频繁调整很让员工反感,尤其是集体扣除工资的时候,一旦某位员工发现自己的工资已经低于了合同规定的工资下界,他就会立刻气愤地离开公司,并且再也不会回来了。每位员工的工资下界都是统一规定的。每当一个人离开公司,我就要从电脑中把他的工资档案删去,同样,每当公司招聘了一位新员工,我就得 阅读全文
posted @ 2013-01-10 20:22 N_C_Derek 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。 每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养所的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养所总是会有两种情况发生:被遗弃的宠物过多或者是想要收养宠物的人太多,而宠物太少。 1. 被遗弃的宠物过多时,假若到来一个领养者,这个领养者希望领养的宠物的特点值为a,那么它将会领养一只目前未被领养的宠物中特点值最接近a的一只宠物 阅读全文
posted @ 2013-01-10 19:59 N_C_Derek 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 有两个监狱,要关押n个罪犯。两个罪犯直接可能会有怨气值,若这两人在同一个监狱,则会爆发一个事件,事件的影响力等于两个罪犯的怨气值。答案等于所有事件的影响力的最大值,要使答案最小。有m对罪犯有怨气值。 n≤20000,m≤100000【分析】 曾经有大牛说过,一般题目求“最小值的最大值”或“最大值的最小值”的话,都可以用二分做。这句话真心很好用啊! 二分答案,然后构造二分图,即怨气值大于答案的罪犯需在不同监狱,若可以构造则修改右边界,否则修改左边界。总时间复杂度O(n log c)。【代码】 PS:懒得写链表直接用vector存边不要介意。#include <iostre.. 阅读全文
posted @ 2012-10-14 20:50 N_C_Derek 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 有n个城市和m条道路,道路有双向道路和单向道路。每个城市的水晶球价格不同,商人阿龙要从城市1走到城市n,城市和道路可以经过多次。阿龙可以在一个城市买入一个水晶球,然后在之后经过的城市卖出(最多交易一次)。求出阿龙最多能够获得的利润。 1≤n≤100000,1≤m≤500000【分析】 最简单的想法是遍历全图,找到价格的Max和Min,相减得到答案。但是要保证必须先走到Min的城市,再走到Max的城市,所以这样是不行的。我们可以反向构图,分成正着走到n和倒着走到1,令Min[i] 表示从1开始正着走到i的城市中最小的价格,Max[i]表示从n倒着走到i的城市中最大的价格,则an.. 阅读全文
posted @ 2012-10-14 19:41 N_C_Derek 阅读(470) 评论(0) 推荐(1) 编辑
摘要: 【问题描述】 为了研究农场的气候,Betsy帮助农夫John做了N(1 <= N <= 100)次气压测量并按顺序记录 了结果M_1...M_N(1 <= M_i <= 1,000,000). Betsy想找出一部分测量结果来总结整天的气压分布. 她想用K(1 <= K <= N)个数s_j (1 <= s_1 < s_2 < ... < s_K <= N)来概括所有测量结果. 她想限制如下的误差: 对于任何测量结果子集,每一个非此子集中的结果都会产生误差.总误差是所有测量结果的误差之 和.更明确第说, 对于每一个和所有s_j都 阅读全文
posted @ 2012-07-12 09:00 N_C_Derek 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间。 他的工作日从0时刻开始,有1000000000个单位时间(!)。在任一时刻,他都可以选择编号1~N的N(1 <= N <= 100000)项工作中的任意一项工作来完成。 因为他在每个单位时间里只能做一个工作,而每项工作又有一个截止日期,所以他很难有时间完成所有N个工作,虽然还是有可能。 对于第i个工作,有一个截止时间D_i(1 <= D_i <= 1000000000),如果他可以完成这个工作,那么他可以获利P_i( 1<=P 阅读全文
posted @ 2012-07-11 20:21 N_C_Derek 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪。很不幸,Bessie滑雪技术并不精湛。 Bessie了解到,在滑雪场里,每天会提供S(0<=S<=100)门滑雪课。第i节课始于M_i(1<=M_i<=10000),上的时间为L_i(1<=L_i<=10000)。上完第i节课后,Bessie的滑雪能力会变成A_i(1<=A_i<=100). 注意:这个能力是绝对的,不是能力的增长值。 Bessie买了一张地图,地图上显示了N(1 <= N <= 10,000)个可供滑雪的斜坡,从第i个斜坡的顶端滑 阅读全文
posted @ 2012-07-11 09:10 N_C_Derek 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 Bessie必须建一座干草堆。一共有N大包的干草(1<=N<=100000)(从1到N编号)依靠传送带连续的传输进牛棚来。第i包干草有一个 宽度W_i(1<=w_i<=10000),高度为1。Bessie必须利用所有N包干草来建立起干草堆,按顺序严格摆放。说得更清楚一些:一旦她将一个草包放在第二级 ,她不能将接下来的草包放在地基上。要求每一级不能比下面的一级宽。求最大高度。【解析】 这道题一眼看过去可能觉得可以贪心,但贪心是不行的,之后再说。 正解还是动规。 先要了解一个结论,在多种可行的堆叠方案中,至少有一种能使层数最高的方案同时使得底边最短。即底边最短 阅读全文
posted @ 2012-07-11 09:00 N_C_Derek 阅读(1260) 评论(0) 推荐(0) 编辑
摘要: Best Cow Fences(poj2018)【问题描述】 题意很简单,就是给你n个数,求一个连续数串的平均值最大,数串长度不小于F n<=100000【分析】 在不考虑数据范围的情况下,可以很容易地写出O(n^2)的动规方程,f[i]=max{(sum[i]-sum[j-1])/(i-j+1)} 如果我们把sum的图像画出来,那么我们发现这就是过点Si和Sj-1的直线的斜率! 也就是问题转化成在求平面上任意两点斜率的最大值。这时候我们只要维护一个下凸折线就可以了。对于一个点i,显然它与折线相切时斜率最大。这个可以自己手动画个图看看。 我们可以用单调队列的算法来维护下凸折线,又由... 阅读全文
posted @ 2012-01-05 10:15 N_C_Derek 阅读(252) 评论(0) 推荐(0) 编辑
摘要: Ural1519 Formula 1(poj 1814)【问题描述】 一个 m * n 的棋盘,有的格子存在障碍,求经过所有非障碍格子的哈密顿回路个数。 m,n<=12【分析】 这个是在cdq的ppt《基于连通性状态压缩的动态规划》里的。 可以好好研究一下。 这题也算是状压的入门题了。【代码】 1 /************************************************************** 2 Problem: 1814 3 User: N_C_Derek 4 Language: Pascal 5 ... 阅读全文
posted @ 2012-01-05 09:36 N_C_Derek 阅读(310) 评论(0) 推荐(0) 编辑