随笔分类 -  杂题

摘要:【描述】 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的。账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), 。当 Ai大于0时表示这个月盈利Ai 元,当 Ai小于0时表示这个月亏损Ai 元。所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和。 刁姹的任务是秘密进行的,为了调查商人的账本,她只好跑到商人那里打工。她趁商人不在时去偷看账本,可是她无法将账本偷出来,每次偷看账本时她都只能看某段时间内账本上记录的收入情况,并且她只能记住这段时间内的总收入。 现在,刁姹总共偷看了m次账本,当然也就记住了m段时间内的总收入,. 阅读全文
posted @ 2013-10-30 21:17 N_C_Derek 阅读(282) 评论(0) 推荐(0)
摘要:一、纸牌均分 给定n堆纸牌,每堆纸牌有若干张,现要使着n堆纸牌平均分配,即每堆张数相等。每次移动可以使一堆牌向其左边的一堆或右边的一堆移动若干张牌。求最少移动次数。 这是我们最熟悉的纸牌均分问题。正确的解法是贪心。我们可以知道均分后每堆纸牌的张数,将现在的牌数减去,就可以得到差值b[i],表示第i堆牌比目标牌数多几张或少几张(b[i]有正有负)。然后我们从第一堆开始往后做,我们把第i堆多出来的b[i]张牌直接移到i + 1上,b[i + 1] += b[i],然后移动数bns加一,如果b[i]为0则不用。注意,此处的关键在于,无论b[i]为正为负都会往右移,即使是负数也没有关系,因为我们这.. 阅读全文
posted @ 2013-10-22 15:08 N_C_Derek 阅读(971) 评论(0) 推荐(0)
摘要:【问题描述】 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。 为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中。因此,只有与湖泊毗邻的第1 行的城市可以建造蓄水厂。而输水站的功能则是通过输水管线利用高度落差,将湖水从高处向低处输送。故一座城市能建造输水站的前提,是存在比它海拔更高且拥有公共边的相邻城市,已经建有水利设施。 由于第N 行... 阅读全文
posted @ 2013-10-18 20:06 N_C_Derek 阅读(2031) 评论(0) 推荐(0)
摘要:【问题描述】 丽江河边有n家客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0 ~ k-1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过p。他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过p元的咖啡店小聚。 对于100%的数据,有2≤n≤200,000,0#include #include.. 阅读全文
posted @ 2013-10-16 20:57 N_C_Derek 阅读(506) 评论(0) 推荐(0)
摘要:【问题描述】 小城Y市,拥有n个景点。由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第0分钟出现在1号景点,随后依次前往2、3、4……n号景点。从第i号景点开到第i+1号景点需要Di分钟。任意时刻,公交车只能往前开,或在景点处等待。 设共有m个游客,每位游客需要乘车1次从一个景点到达另一个景点,第i 位游客在Ti分钟来到景点Ai,希望乘车前往景点Bi(Ai t[i + 1]) g[i] = i + 1 (time[i + 1] #include #include #include using namespace std;struct n... 阅读全文
posted @ 2013-10-15 21:35 N_C_Derek 阅读(2326) 评论(1) 推荐(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 阅读(432) 评论(0) 推荐(0)
摘要:废话不说,直接进入正题。在这里本题将介绍四种方法。 算法一:在树中,最短路等于最长路,因此我们可以用floyd算法求每两点间的距离,并找出直径。然后枚举直径上的核,模拟得出偏心距。这样的算法时间复杂度是O(n^3)。在这里有一个性质,对于每条直径都有核,而最小偏心距是唯一的,所以我们只要枚举其中一条直径就可以了,证明就略啦。 且对于直径上的一条路径F,它的偏心距是可以在O(1)的时间内求出来的。 ecc:=max{min{dist[st,i],dist[st,j]},min{dist[ed,i],dist[ed,j]}}; 其中st、ed为直径两端,i、j为线段两端。证明如下:我... 阅读全文
posted @ 2011-10-24 20:18 N_C_Derek 阅读(660) 评论(0) 推荐(0)
摘要:双栈序列题解 这题,官方解题报告(其实我也不知道是不是官方的,据说是出题者写的)已经写的相当清楚了,模型是二分图,就不多说了,直接看程序吧。View Code 1 var i,j,n,m,k,l:longint; 2 top1,top2:longint; 3 s1,s2:array[0..1000]of longint; 4 a,b:array[0..1000]of longint; 5 color:array[0..1000]of longint; 6 p:array[0..1000,0..1000]of boolean; 7 bo:boo... 阅读全文
posted @ 2011-10-21 21:18 N_C_Derek 阅读(244) 评论(0) 推荐(0)