摘要: 【描述】 ***姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的。账本上记录了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 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 【描述】 OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多。然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕。所以,OIER Association组织成立了,旨在建立OI island的交通系统。 OI island有n个旅游景点,不妨将它们从1到n标号。现在,OIER Association需要修公路将这些景点连接起来。一条公路连接两个景点。公路有,不妨称它们为一级公路和二级公路。一级公路上的车速快,但是修路的花费要大一些。 OIER Association打算修n-1条公路将这些景点连接起来(使得任意两个景点之间都会有一条路径)。为了保证公路系统的效率. 阅读全文
posted @ 2013-10-27 21:24 N_C_Derek 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 在社会经济高速发展的今天,借助高科技手段,组建太空战队的愿望就快实现了。 战队属下有N个航天员。作为空军选拔上来的佼佼者,每个航天员都有与生俱来的骄傲——他们每个人都认为自己是最强的或者是第二强的。这样,如何分组就成了司令官的难题了。司令官分组的方法是这样的: 步骤1:任意选择一个未被分组的航天员,记为当前航天员. 步骤2:把当前航天员分入一个新的组. 步骤3:如果当前航天员心目中最强的那个航天员(记为Q航天员)还没有被分组,那么把Q航天员分入当前航天员所在组,并把Q航天员作为当前航天员并重复步骤3;如果Q航天员已经被分组,那么重复步骤1,直至所有航天员都被分入了某... 阅读全文
posted @ 2013-10-22 21:02 N_C_Derek 阅读(271) 评论(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 阅读(867) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。 为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中。因此,只有与湖泊毗邻的第1 行的城市可以建造蓄水厂。而输水站的功能则是通过输水管线利用高度落差,将湖水从高处向低处输送。故一座城市能建造输水站的前提,是存在比它海拔更高且拥有公共边的相邻城市,已经建有水利设施。 由于第N 行... 阅读全文
posted @ 2013-10-18 20:06 N_C_Derek 阅读(2002) 评论(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 阅读(494) 评论(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 阅读(2277) 评论(1) 推荐(0) 编辑
摘要: 【问题描述】 一位冷血的杀手潜入 Na-wiat,并假装成平民。警察希望能在 N 个人里面,查出谁是杀手。 警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是杀手, 谁是平民。 假如查证的对象是杀手, 杀手将会把警察干掉。现在警察掌握了每一个人认识谁。 每一个人都有可能是杀手,可看作他们是杀手的概率是相同的。 问:根据最优的情况,保证警察自身安全并知道谁是杀手的概率最大是多少? 对于 100%的数据有 1≤N ≤ 10 0000,0≤M ≤ 30 0000【分析】 很简单的一道题。题目给了一个有向图,每查未知的一个人,猜错的概率增加1/n。如果出... 阅读全文
posted @ 2013-09-29 21:26 N_C_Derek 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 求sigma(gcd(i,n)),1 <= i <= n.(n <= 10^9)【分析】 枚举i必然TLE。 换个角度,我们枚举gcd(i,n) = k,然后统计满足gcd(i,n) = k的i的个数。 gcd(i,n) = k的个数为phi(n/k)。phi(n/k)表示1到n/k中与n/k互质的个数。若一个数j与n/k互质,则j * k 与 n 的gcd为k。 于是sigma(gcd(i,n)) = sigma(k * phi(n /k)),k | n。 这样我们只要枚举n的约数就行了。但实际上这样复杂度还是很高,我们可以优化。我们可以考虑将枚举约数变为枚举 阅读全文
posted @ 2013-01-20 21:48 N_C_Derek 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 求sigma(lcm(i,n)),1 <= i <= n。【分析】 跟求sigma(gcd(i,n)) 有点像(POJ2480Longge's problem),都是枚举n的约数。 首先有个性质,在1到n中与n互质的数都是成对出现的,且他们的和为n * phi(n) / 2。 例如30,在1到n中与30互质的数有1,7,11,13,17,19,23,29.其中1 + 29= 30,7 + 23 = 30,11 + 19 = 30,13+17 =30。(1是例外,虽然2也是例外,phi(2) = 1,但是结果是一样的) 所以,当gcd(i,n) = k,sigm 阅读全文
posted @ 2013-01-20 20:58 N_C_Derek 阅读(347) 评论(0) 推荐(0) 编辑