因为体艺节,旷了比较多的模拟赛。
A
给定 \(n, a_{1\dots n}, b_{1\dots n}\),称一个序列 \(x_{1\dots k}\) 是好的,当且仅当 \(\forall i \in [1, k - 1], \ b_i \cdot x_i < x_{i + 1}\),求出 \(a\) 中最长好的子序列的长度。
\(1\le n\le 10^6, \ 1\le a_i \le 10^{12}, \ 1\le b_i\le 10^6\)
和 LIS 很像,设 \(f_i\) 表示以 \(a_i\) 结尾的最长好的子序列长度,可以使用树状数组优化,只需要每次在树状数组中位置 \(b_{f_i} \cdot a_i + 1\) 的位置 chkmax 即可。
B
给定 \(m, d, w, a, b\),求出有多少个有序二元组 \((x, y)\) 满足 \(1\le x, y\le min(m, d)\) 且满足
\[\begin{cases}\end{cases}\]
多组数据。
\(1\le T\le 10, \ m, d, w, a, b \le 10^9\)
两式相加得到