Loading

正睿 Day3Day4 T1&T2 总结

上午:正睿场NOIP20连T1T2合并 😉

T1:上升序列

给定 \(n\times m\) 矩阵,其中每行行内单调不降,在每一行选一个数,求组成单调不降序列方案数

\(n \le 100,m\le 10^4\)

简单DP,因为每行已经排好序,故双指针转移即​​可✌️ ​

T2:划分

给定序列 \(A,B,C\) ,求一个划分方案 \(d\) 使得 \(min_{i}\{\sum_{i = d_{i - 1} + 1}^{d_i}{a_i} + b_{d_{i - 1} + 1} + c_i\}\) 最大

\(n \le 2\times 10^5\)

sol1:

因为题目中出现 最小值最大 的字眼,考虑二分答案
\(O(n)\) 扫一遍,因为我们只关心 是否存在 段最小值不小于 \(mid\) 的划分,故每次若 \(s_i+c_i-\min -mid\ge 0\),则该右端点合法,更新 \(s_i-b_{i+1}\) 的最小值,即更新后面的可选左端点。

sol2:

非常高贵的线段树优化DP​
直接设 \(dp_i\) 表示划分前 \(i\) 个的答案,首先有:

\[dp_i=\max_{j<i}\{\min(dp_j, W(j, i))\} \]

考虑分讨拆开其中的 \(\min\)

\[dp_j < W(j, i) = s_i - s_j + b_{j + 1} + c_i \\ \]

\[s_i+c_i>s_j + dp_j - b_{j + 1} \\ \]

那么我们将 \(s_j+dp_j-b_{j+1}\) 丢到权值线段树里去,已 \(s_i+c_i\) 为分界点,一半查询 \(dp_j\) 的最大值,另一半查询 \(b_{j + 1} - s_j\) 的最大值

T3: 风・珍珠

\(n\) 个物品,代价为 \(x_i\times v_i\),价值为 \(v_i\),进行 \(m\) 次操作,每次可以删去一个物品,或询问代价和至多为 \(k\) 的最大价值

\(n,k_{max} \le 2\times 10^6, m\le 5\times 10 ^3\)\(x_i\) 严格递增

首先看到这个 “背包” 的不同寻常之处:代价为 \(x_i\times v_i\),很谜的一个乘积😵

那么我们先考虑不带修改的:

不难发现”性价比“即为:\(\frac{val}{cost}=\frac{v_i}{x_i v_i}=\frac1x\)

那么我们将 \(x\) 降序排序后,设 \(dp_i\)总价值为\(i\)的最小代价,便注意到此时物品 \(i\) 至多只能提供 \(\frac k x\) 的价值,故我们的状态数是调和级数的,故复杂度 \(O(n\log k)\)\(40pts\)

于是对于一般情况,删点变加点。因为加点顺序不变,没有了前文中 \(x_i\) 的单调性,怎么办呢 > ʌ <

那么拿出高贵的根号分治!阈值设为 \(B\),将物品分为 \(x_i<B\)\(x_i>B\) 两类

  1. 对于 \(x_i\le B\) ,因为 \(x_i\) 严格递增,故这一类之多只有 \(B\) 个物品,正常暴力 DP 复杂度 \(O(Bk)\)
  2. 对于 \(x_i>B\) ,先排序预处理出初始背包,每次加入暴力维护背包, \(O(n\log k +\frac{mk}B)\) 。每次查询时需要合并两种 “代价“ 定义不同的背包,可以枚举在 \(x_i>B\) 中希望得到的价值,\(O(\frac{mk}B)\) 合并。

根号平衡,取 \(B=O(\sqrt{m})\) 时最优,\(O(n\log k+ k\sqrt{m})\)

T4:花・焦骨

需要在 \(n\times n\) 的矩阵内的 \(m\) 个位置填上非负整数,并满足第 \(i\) 行最大值恰为 \(a_i\),第 \(i\) 列最大值恰为 \(b_i\) ,求最小的数字和

\(n\le 2500,m\le 8\times 10^5,1\le max(a_i,b_i) \le 10^6\)

\([0,k]\) 的每个限制值在行/列的限值中至多出现 \(100\)

首先容易发现,每次只用填最大值!

但对于一个位置 \((x,y)\) ,若 \(a_x \ne b_y\) 则在此放置其较小值后,另外一个限制仍需另外选一个点来满足

发现这样代价为两个点,显然不优。较优的是在两个限制相同的行列交点处放置。

咦?一个交点可以覆盖两个限制条件,这不就是匹配吗?

那么我们尝试做二分图最大匹配,左部点为行,右部点为列,两限制值相同时两部分连边,那么其最大匹配的权值就是我们省下来的权!

建图后跑 dinic ,\(O(nc^2)\),本题 \(c\ge 100\),可以通过此题。

posted @ 2024-11-02 15:20  慕斯ひいきする  阅读(47)  评论(0)    收藏  举报