摘要:
分析 考虑每次新增的有文件的机子能有几个,若当前已有
a 个,若
a≤k,那么本次就增加
a 个,否则本次就增加
k 个。所以先不断翻倍,直到个数大于
k 个,还需要传输的次数就是剩下的值需要减
k 减到小于等于
0 的次数了,一个除法
阅读全文
posted @ 2021-11-12 16:19
漠寒·
阅读(94)
推荐(0)
编辑
摘要:
分析 因为每一个面额都是前面面额的整数倍,所以最终得到的答案减一的合成方案里每一张钞票的张数,一定没有达到后一种面额和该种面额的比值,否则就能用更少的张数来替换,例如现在有
1 和
10,你
1 最多用
9 张,要不然只用一张
10 就替代了,所以从小到大考虑
阅读全文
posted @ 2021-11-12 16:18
漠寒·
阅读(63)
推荐(0)
编辑
摘要:
题意 有
n 个人,他们要进行下面的进程:每轮设存活
i 个人,那么每个人会减少
i−1 的血量,血量小于等于零就会被淘汰,现在需要你给他们每个人设置一个在
[1,x] 之间的初始血量,使得某轮游戏结束后,无人生还,求这样的方案数。 分析 考虑 dp 处理,以 \(f
阅读全文
posted @ 2021-11-12 16:18
漠寒·
阅读(120)
推荐(0)
编辑
摘要:
分析 读了下题,立马就想到了主席树,对每个点存一个值域线段树,存储其到根的路径上有哪些点,
x 到
y 的路径就是他们线段树合起来再减去两倍
lca 的线段树,再把
lca 本身所含点加上即可。 然后发现每个点就比他爹线段树多含了它本身所含的点(就是那些住它那儿的)。所
阅读全文
posted @ 2021-11-12 16:17
漠寒·
阅读(55)
推荐(0)
编辑
摘要:
分析 分组背包加并查集。 本题的并查集是最基本的满足传递性的朋友关系,所以直接合并即可。 然后用背包分组别进行运算,
f[i] 表示计算了前面的组别后
i 的重量最多多少魅力值,
g[i] 表示计算当前组后的对应答案,为保证分组正确性,避免在计算一个组时将单个个体计算多次,转移计
阅读全文
posted @ 2021-11-12 16:17
漠寒·
阅读(47)
推荐(0)
编辑
摘要:
分析 我们如果已经找到了一条满足要求的路径,如果将它继续延伸的话,或值只会增加,所以你不管延伸多长都可以的。 所以考虑二分答案,先确定路径终点,二分最短能满足要求的延伸长度,然后该次贡献的答案就能通过深度轻松算出。 考虑二分的 check,我们用倍增来计算,
f[i][j] 表示倍增到的点编号
阅读全文
posted @ 2021-11-12 16:16
漠寒·
阅读(32)
推荐(0)
编辑