[洛谷P1156]垃圾陷阱

难度:提高+/省选-

题目描述

        卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到“垃圾井”中。“垃圾井”是农夫们扔垃圾的地方,它的深度为D(2≤D≤100)英尺。
        卡门想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。
        每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。
        假设卡门预先知道了每个垃圾扔下的时间t(0 < t ≤ 1000),以及每个垃圾堆放的高度h(1 ≤ h ≤ 25)和吃进该垃圾能维持生命的时间f(1 ≤ f ≤ 30),要求出卡门最早能逃出井外的时间,假设卡门当前体内有足够持续10小时的能量,如果卡门10小时内没有进食,卡门就将饿死。

阅读全文〉

[洛谷P1120]小木棍[数据加强版]

难度:提高+/省选-

题目描述

        乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50。
        现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。
        给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。

阅读全文〉

[洛谷P1080]国王游戏

难度:提高+/省选-

题目描述

        恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。首先,他让每个大臣在左,右手上面分别写下一个整数,国王自己也在左,右手上各写一个整数。然后,让这n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。
        国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。

阅读全文〉

[洛谷P1074]靶型数独

难度:提高+/省选-

题目描述

        小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低。但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶形数独”,作为这两个孩子比试的题目。
        靶形数独的方格同普通数独一样,在9格宽×9格高的大九宫格中有9个3格宽×3格高的小九宫格(用粗黑色线隔开的)。在这个大九宫格中,有一些数字是已知的,根据这些数字,利用逻辑推理,在其他的空格上填入 1 到 9的数字。每个数字在每个小九宫格内不能重复出现,每个数字在每行,每列也不能重复出现。但靶形数独有一点和普通数独不同,即每一个方格都有一个分值,而且如同一个靶子一样,离中心越近则分值越高。

        上图具体的分值分布是:最里面一格(黄色区域)为 10 分,黄色区域外面的一圈(红色区域)每个格子为9分,再外面一圈(蓝色区域)每个格子为8 分,蓝色区域外面一圈(棕色区域)每个格子为7分,最外面一圈(白色区域)每个格子为6分,如上图所示。比赛的要求是:每个人必须完成一个给定的数独(每个给定数独可能有不同的填法),而且要争取更高的总分数。而这个总分数即每个方格上的分值和完成这个数独时填在相应格上的数字的乘积的总和
        总分数即每个方格上的分值和完成这个数独时填在相应格上的数字的乘积的总和。如图,在以下的这个已经填完数字的靶形数独游戏中,总分数为 2829。游戏规定,将以总分数的高低决出胜负。

        由于求胜心切,小城找到了善于编程的你,让你帮他求出,对于给定的靶形数独,能够得到的最高分数。

阅读全文〉

[洛谷P1282]多米诺骨牌

难度:提高+/省选-

题目描述

        多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的若干多米诺骨牌。
        上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|。
        例如在图中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2。每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置。 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小。

        对于图中的例子,只要将最后一个多米诺骨牌旋转180°,可使上下2行点数之差为0。

阅读全文〉

[洛谷P1417]烹调方案

难度:普及+/提高

题目背景

        由于你的帮助,火星只遭受了最小的损失。但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星。不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~
        gw还是会做饭的,于是拿出了储藏的食物准备填饱肚子。gw希望能在T时间内做出最美味的食物,但是这些食物美味程度的计算方式比较奇葩,于是绝望的gw只好求助于你了。

阅读全文〉

[洛谷P1880]石子合并

难度:普及+/提高

题目描述

        在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
        试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分。

阅读全文〉

树状数组

        这一次谈谈树状数组。
        先考虑一个问题,对于一个给定的数组,如何快速地求出其前缀和?
        最通俗的做法是循环求出前n项和,时间复杂度O(n)。如果数组相当大又多次修改其中数据,求和过程时间消耗巨大。
        为了快速求和,可以用树状数组来完成这一操作。树状数组可以维护并快速求出数组前缀和。

阅读全文〉

[洛谷P1090]合并果子

难度:普及/提高-

题目描述

         在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。
         每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n-1 次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。
         因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为 1 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。
         例如有 3 种果子,数目依次为 1 , 2 , 9 。可以先将 1 , 2 堆合并,新堆数目为 3 ,耗费体力为 3 。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为 12 ,耗费体力为 12 。所以多多总共耗费体力=3+12=15。可以证明 15为最小的体力耗费值。

阅读全文〉