摘要:
题意: 一个银行有若干不同面值的货币,每个面值有不同的数量,求银行可以凑出最大的小于等于给定金额的钱的数值。 思路: 组合背包裸题,把数量以二进制拆分,就可以凑出从1到k的所有数,时间复杂度降到log(k)。之后再用0,1背包解决。 代码: 阅读全文
摘要:
题意: 中文题意,略。。。 思路: 第一问,求最长公子序列,模板题。。。 第二问,求最长公共子序列的个数,这个就比较有意思了。 设len[i][j]表示表示第一个串到i位置,第二个串到j位置时的长度。 设lcs[i][j]表示第一个串到i位置,第二个串到j位置时,lcs的个数。 当a[i] == b 阅读全文
摘要:
题意: 约翰让一些奶牛做家务,每只奶牛都有固定工作的时间段。 现在安排最少的奶牛,使得每一个单位时间内至少有一只奶牛在工作,问是否可行。 思路: 经典的贪心,区间覆盖问题。 把起始时刻0作为当前时刻开始寻找,找到区间左端点小于等于当前时刻+1且区间右端点最大的一个区间,直到下一个区间的左端点大于当前 阅读全文
摘要:
题意: 在海上有很多的小岛,要建造一些雷达来把所有的小岛都覆盖掉。 雷达只能建造在海岸线上(水平的X轴),且所有雷达的覆盖半径是相同的。 现在问是否可以建造最少的雷达使得所有的小岛都被覆盖。 思路: 首先可以知道,如果一个小岛的纵坐标大于给定的半径,那么就不会存在合理的方案; 对于一个小岛,可以通过 阅读全文
摘要:
题意: 有若干只奶牛要进食,有进食的开始时间和结束时间。 但是一个位置只能容纳一只奶牛,所以就需要较多的位置。 显然,在一个位置,当一只奶牛进食结束后,另一只奶牛可以去进食。 问最少的位置以及每只奶牛被安排的位置。 思路: 贪心。 用一个优先队列存放奶牛,结束时间早的奶牛先出队列。 将所有奶牛按照开 阅读全文
摘要:
题意: 一家工厂每个周可以生产无数的酸奶,每周单位酸奶的价格不相同。 有一个无限大的仓库可以存储这些酸奶,可以储存无限久,储存每单位酸奶的价格相同。 每周要向客户供应一定量的酸奶,这些酸奶可以是本周生产的,也可以是以前存储的。 要求把花费最小化。 思路: 由于每周的酸奶可以来自前面任何一个周的生产, 阅读全文
摘要:
题意: 有一些货物需要装在包裹里,这些包裹是正方形的,并且高度相同,规模分别有1 * 1,2 * 2,3 * 3,4 * 4,5 * 5,6 * 6。 现在给出每种包裹需要的数量,问最少需要多少个包裹可以装下这些货物。 思路: 需要最少的包裹,那肯定用最大的包裹装,即6 * 6。 首先装6 * 6的 阅读全文
摘要:
题意: 约翰有一些硬币,这些硬币中的大面值都可以被任何小于它面值的硬币的面值所整除,比如1 5 10 50等。 现在每个面值的硬币有若干个,约翰每周至少要付给他的奶牛的薪酬为C,问约翰最多可以付多少周。 思路: 贪心,一道好题。 首先从大面值的往小面值的加,不能超过C,但是一定要尽量接近C或者等于C 阅读全文
摘要:
题意: 有一种名为stripie的生物,每次当两个质量为m1 和 m2的这种生物相遇之后,它们会合体成为一个个体,这个个体的质量变为2 * sqrt(m1 * m2)。给出n个生物的质量,问他们相遇之后最后剩下一个个体时,最小的质量是多少,保证不会有超过2个这种生物碰到一起的情况。 思路: 哈夫曼树 阅读全文
摘要:
题意: 约翰有一个N*M的农场,他想在里面种小麦。 有些格子是不育的,并且两株小麦不能相邻(上下或左右)。 问种植的方案有多少种,一个也不种植也是一种方案。 思路: 非常裸的一道状压dp,但是复杂度把人吓住了。首先枚举当前状态cur,再枚举之前的状态pre,对于每一行都这样做。那么复杂度就是O(n 阅读全文