摘要:
最长递增子序列 第一问直接 dp 即可。 第二问考虑最大流。 按照第一问所做的 dp 数组建一张分层图,其中第 层的点都是 的 。 把每个点拆成入点和出点,每个点内入点和出点连一条容量为 的边。 然后考虑给相邻两层之间的点连边。对于第 \(x\ 阅读全文
摘要:
题意 给定 只骆驼和每条骆驼的重量 。 这些骆驼要通过一条路,这条路被分为 个部分,每个部分的长度为 ,限重为 。同时经过这部分的骆驼的重量和不能超过限重,否则就会坍塌。 你可以指定这 只骆驼的顺序和两两之间的距离,问第一只骆驼和最后一只的最短距 阅读全文
摘要:
Sol 考虑两种暴力。 直接枚举同类点,组合数计算两点之间的路径数。单次操作时间复杂度 。其中 表示这类点的个数。 暴力 dp,记 表示到 的方案数,若走到同类点那么加上方案数,单次操作复杂度 。 然后考虑根号分治,当 $ 阅读全文
摘要:
思路 by @houzhiyuan Sol 感觉在线不怎么可做,考虑离线。 那么问题变成了维护路径上第 大出现次数的数。 考虑线段树,以出现次数为节点的下标,那么查询相当于是求第 大。 线段树二分即可。 存方案的话开个 set 维护一下每个指即可。 时间复杂度 $O(Q \log n 阅读全文
摘要:
Sol 挺套路的一个题。 首先 。 那么一次询问就变成了区间积乘上区间质因数并集的贡献。 前者直接前缀积维护即可。考虑后者怎么维护。 离线,把询问按右端点排序。依次加入 。 记 表示 阅读全文
摘要:
思路比较好想但写起来比较阿拉丁,大分讨。 大概是记忆中第一次独立做出 *2500 目前是 cf 最优解 rk1 Sol 首先把书按时间排序。 然后我们假定前 本书即为答案。考虑一本书一本书换进去。 现在我们的目标是找到一种合法方案,但不要求时间最优。 记 表示两者都喜欢的书的数量, 阅读全文
摘要:
Sol 首先先用 次查询把每条边的权值弄出来。 然后把边按照权值排序。从小到大依次加入每条边。 当一条边在最后的答案中那么当且仅当 ,其中 为当前询问的答案, 为前 条边组成的最优答案, 表示第 \(i 阅读全文
摘要:
Sol 首先,答案肯定是原序列的一个子序列之和。 然后观察这个合并操作,很容易发现奇数位置只能与奇数位置合并,偶数位置只能与偶数位置合并。 那么问题转化为要在奇数位置上选一些数或者偶数位置上选一些数使他们和最大。 直接 dp 就行。 构造方案的话先删两端的,然后每次取中点一个一个合并即可。 时间复杂 阅读全文