摘要:
单调队列优化多重背包(转自:http://hi.baidu.com/lydrainbowcat/blog/item/d9fb791fc48ae1e0e0fe0bab.html) 多重背包仅涉及体积而不涉及价值的一类可以使用染色在O(nv)时间、20行左右秒过,然而对于涉及价值的多重背包,则要使用二进制拆分物品优化,或者使用效率更高应用更广的单调队列(O(nv))。 若有n种物品,背包容量为m,物品体积、价值、最大使用次数为v,w,c,则朴素的动规方程为:f[i]=max{f[i-v*k]+w*k} (1<=k<=c)。我们把所有可能达到的体积按照除以当前物品体积v的余数划分为0~v 阅读全文
摘要:
[题目来源]:NOIP基础题集[关键字]:图论 连通性[题目大意]:十字绣一针只能正反交错进行,问对于给定图案至少需要多少针。//=====================================================================================================[分析]:首先将图划分成不同的连通块,每一块至少要用一针,所以只要计算每个块内要用几针再相加。将正面的连线看作正边,反面的为负边。因为对于每一个点,如果有一条正边则代表正面有一条线,有一条负边则代表反面有一条线,而正负边之差,就是以此点位开始的线的数量,而这样的线必定 阅读全文
摘要:
[题目来源]:NOIP2007普及组[关键字]:贪心[题目大意]:守望者的跑步速度为17m/s,守望者拥有闪烁法术,可在1s内移动60m,每次使用闪烁法术都会消耗魔法值10点。守望者的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。现在已知守望者的魔法初值M,他所在的初始位置与岛的出口之间的距离S,岛沉没的时间T。计算如何在最短的时间内逃离荒岛,若不能逃出,则输出守望者在剩下的时间能走的最远距离。//======================================================================[分析]:AC做法是贪心。易证闪烁最然需要回 阅读全文