2025.4.14 NOI 模拟赛 题解
T1 NFLS #P1359. ハルカナホシノセカイへ
题意
给定 \(l_{1\sim n},s_{1\sim n},c_{1\sim n+m}\;(1\le l_i\le m)\),选择 \(S\subseteq ([1,n]\cap\mathbb N)\),使得 \(\forall u\in S,v\in S,u<v\;(l_u\ge l_v)\),\(S\) 的代价为 \(\sum_{u\in S}s_u\),\(S\) 的收益为按 \(u\in S\) 从小到大,把 \(l_u\) 插入初始为空的集合 \(T\) 的收益,其中把 \(l\) 插入 \(T\) 的收益为 \(c_l\),若 \(l\in T\) 则删除 \(l\) 并把 \(l+1\) 插入 \(T\),收益累加,求出 \(S\) 的收益减去代价的最大值,\(n,m\le2000\)
分析
令一个 \(l_u\) 的权值 \(2^{l_u}\)
考虑 \(dp\),令 \(f_{i,j}\) 表示 \(i\sim n\) 中选择了 \(i\) 且选择的 \(l\) 的权值总和除以 \(2^{l_u}\) 下取整为 \(j\) 的收益减去代价的最大值
令 \(\text{lw}(v)=\{k\mid v\bmod 2^k=2^k-1\}\),令 \(\text{Wt}(b,S)=\sum_{x\in S} c_{b+x}\),转移为
分讨 \(l_i-l_j\le \log_2(n)\) 和 \(l_i-l_j> \log_2(n)\) 然后分别前缀和优化,可做到 \(O(n^2\log^2 n+m)\)
T2 NFLS #P26854. Yorugao \(\quad\) CF1510H Hard Optimization
T3 NFLS #P24564. Saint or Sinner \(\quad\) CF1060G Balls and Pockets
题意
一个无穷数列 \(p_{0\sim\infty}\),初始 \(p_i=i\),给定 \(a_{1\sim n}\),\(q\) 次询问给定 \(x,k\),表示对 \(p\) 进行 \(x\) 次操作后第 \(k\) 个位置的值,对 \(p\) 进行一次操作为删去 \(p_{a_i}\;(1\le i\le n)\) 然后把剩余部分拼起来,询问之间独立,\(n,q\le5\times10^5,a_i\le a_{i+1},\;k,x\le10^9\)
分析
先特判 \(x<a_1\) 的情况
令 \(\inf\) 为一个较大值(\(5\times 10^{14}\) 以上),则对于 \([\inf,\inf+n)\) 这 \(n\) 个点,进行若干次操作后它们把 \([a_1,\inf+n)\) 各覆盖恰好一次
对于 \([a_1,\inf+n)\) 中的每个点 \(x\),将其编号 \(a_x\) 表示 \([\inf,\inf+n)\) 经过 \(a_x\) 次操作覆盖到了 \(x\),将其染色 \(c_x\) 表示覆盖到 \(x\) 的是 \([\inf,\inf+n)\) 中的 \(\inf+x-1\)
则一次询问 \((x,k)\) 相当于查询 \((x,\inf+n)\) 中从小到大第 \(k\) 个和 \(x\) 同色的位置
考虑从 \(\inf\) 向左扫描,设目前的区间为 \([l,l+c)\),还没有删去的数集为 \(S\)(实际数字为 \(\{u+\inf-1\mid u\in S\}\)),设已经操作了 \(t\) 次,初始令 \(l=\inf,c=n\),\(S=[1,n]\cap\mathbb N\),\(t=0\)
令 \(dt=\lceil\frac{l-a_c}c\rceil\),\(ds=dt\times c\),则对于每个 \(l-ds\le i<l\),\(c_i\) 为 \(S\) 中第 \(((i-(l-ds))\bmod c)+1\) 小值,\(a_i=t+\lceil\frac{l-x}c\rceil\)
树状数组维护 \(S\),一次扫描把 \((x,k)\) 转化为 \((a,c)\),然后第二次扫描得到答案
时间复杂度 \(O(n\log n)\)
比赛结果
\(100+40+15\),\(\text{rk}36\)