随笔分类 - 算法——贪心
摘要:题目 原题链接:http://codeforces.com/problemset/problem/884/D 现有一堆小石子,要求按要求的数目分成N堆,分别为a1、a2、...an。具体的,每次选一个堆(其重量为代价),分成2或3堆。求最小的可能代价。 思路 我们反向考虑,就是一个不断合并的过程。当
阅读全文
摘要:一、问题描述 有1元、5元、10元、50元、100元、500元的硬币各C1、C5、C10、C50、C100、C500枚。现要用这些硬币来支付A元,最少需要多少枚硬币?假设本题最少存在一种支付方案。(0 ≤ C1、C5、C10、C50、C100、C500 ≤ 109,0 ≤ A ≤ 109 ) 二、问
阅读全文
摘要:一、问题引入 农夫约翰为了修理栅栏,要将一块很长的木块切成N块。准备切成的长度分别是L1、L2、、、,LN,未切割前的木板长度切好为切割后木板长度的总和。每次切断木板时的开销是这块木板的长度。(1 ≤ N ≤ 20000,0 ≤ Li ≤ 50000) 二、解题思路 由于N的值非常大,不可能枚举所有
阅读全文
摘要:一、题目 有n根棍子,棍子i的长度为ai。想要从中选出三根棍子,使其构成的三角形的周长最大。请输出最大的周长,如果无法构成三角形,则输出0。 二、解法 1)思路:首先根据长度排序(假设从小到大),贪心的选取(从大到小的遍历)如果与前两根构成三角形,则跳出循环。 正确性:如果一根棍子与前两个都不能构成
阅读全文
摘要:一、题目信息 The - Modcrab 简单翻译一下:Vova有生命值h1,每次攻击值为a1,每瓶药水恢复生命值c1;Modcrab有生命值h2,每次攻击值为a2。在每个关卡开始,Vova有两种选择,要么攻击怪兽Modcrab,要么喝一瓶药水(Modcrab的生命值允许超过h2),然后,如果战斗没
阅读全文