【A】nice try
录制文件:https://meeting.tencent.com/cw/Nbn4MD6q0b
访问密码:M8FZ
许多 pdf 题,还是得写一下题意。
qoj11366 SLA Tomography
题意:给你 \(n\) 个数 \(a_i\),你要构造一个水池,使得往里面倒满水后从上往下第 \(i\) 层(行)有 \(a_i\) 格水,问这个水池至少需要多少列。两边的水会流走,水位高于一侧格子时会往外流。
简单贪心。
qoj14716 K-Coverage
题意:有 \(n\) 条长为 \(L\) 的线,你可以移动其中至多一条线,最大化移动后数轴上被覆盖 \(k\) 次的部分长度。
考虑分讨我们移动的线段与原本是否有交。
- 无交:贡献可以用前后缀 max 计算。
- 有交:查区间 rmq。
qoj14718 Meeting for Meals
题意:有 \(b\) 个点 \(m\) 条边的带权无向图,\(k\) 个人要去往 \(1\),设 \(mx\) 为所有人到 \(1\) 的最小时间,问对于每个 \(i\),在 \(mx\) 时间内所有人到 \(1\) 的前提下,第 \(i\) 个人最多能有多长时间是与其他人一起动的。
考虑 \(i\) 和 \(j\) 在某个点/边上相遇。点和边的情况是类似的。
若他们在 \((u,v)\) 上相遇,则要求,\(i\) 是第一个到达点 \(u\),\(j\) 是第一个到达点 \(v\) 的。否则一定可以调整到更早相遇。
qoj975 Game
题意:给你长为 \(n\) 的序列 \(a_i\),假设现在位于 \(pos\),可以选择结算获得 \(a_{pos}\),或者移动(不能在 \(1,n\) 处移动),以 \(\frac{1}{2}\) 的概率移动至 \(pos-1\),\(\frac{1}{2}\) 到 \(pos+1\),问随机从一个点开始的期望收益。
考虑两个结算的位置 \(a_l,a_r\),则对于 \(l\le i \le r\),则 \(i\) 的答案在 \((l,a_l),(r,a_r)\) 的直线上。那么对 \(a\) 建出凸包即可。
qoj977 Local Maxima
题意:称一个 \(n\times m\) 的矩阵是好的,当且仅当其由 \(1\sim nm\) 构成,且只有一个位置既是行最大值又是列最大值,计数好矩阵个数。
显然你放 \(nm\) 后从大往小填数,那么只能在填过数的行或者列放当前数。
那么每次我们选择一个行或者列,在放过数的那些行列中,放当前最大值和一些其他的数。显然可以 dp。
qoj14139 JamBrains
题意:有个网格,第 \(i\) 行有 \(s_i\) 个点,标号 \(1\) 到 \(s_i\),给定 \(u,r\),定义一个点一次操作为先向上走 \(u\) 步,从 \((x,y)\) 走到 \((x-1,\min(y,s_{x-1}))\),\(x=1\) 时不动,然后向右走 \(r\) 步,\((x,y)\) 走到 \((x,y+1)\),\(y=s_{x}\) 时走到 \((x+1,1)\),问有多少个点重复进行操作后能在某个时刻(包括操作中间)走到第一行。\(q\) 次单点修改 \(s_i\)。
我们定义两个格子之间的偏序关系为 \(id(x,y)<id(u,v)\),其中 \(id\) 为这个格子是从上到下从左到右第几个格子。
那么我们可以发现一个性质,格子的到达点是单调的。那么我们就可以维护最大前缀满足 \((1\sim i,1)\) 是否可以往上走,线段树二分即可。并且你发现这个东西就代表了 \((i,x)\) 是否可以往上走。
qoj11362 Most Scenic Cycle
发现限制满足他是广义串并联图,直接做。
CF232E Quick Tortoise
轮流分治两维并用 bitset 维护到中线的可达性。复杂度 \(O(n^3/w+q\log n)\)。
- 幽默:发现跑不过只分治一维的。
CF1787I Treasure Hunt
容易发现,他的限制其实是无用的。考虑 \(l\le q\le r\) 的情况,他的贡献是 \(s_r+s_q-s_l\),那么我们可以将 \(s_r,s_q\) 中的较小者调整为较大者,那么一定会满足 \(r\le q\) 的限制。
所以问题转化为求所有子区间的前缀最大值&最大子段和。
- 前缀最大值:分治,求 \(\max(A,S+B)\)。
- 最大子段和:分治,处理出左边的最大子段和&最大后缀 \([A,suf]\),右边类似处理出 \([B,pre]\),那么考虑这三个部分何时成为答案。
- \(A\ge suf+pre,A\ge B\) 时为 \(A\),则左边对右边的限制为 \(B\le A,pre\le A-suf\)。
- \(B>A,B\ge suf+pre\) 时为 \(B\),则左边对右边的限制为 \(B>A,B-pre\ge suf\)。
- \(suf+pre>A,suf+pre>B\) 时为 \(suf+pre\),则左边对右边的限制为 \(pre>A-suf,B-pre<suf\)。
前两类二分,第三类树状数组,复杂度 \(O(n\log^2 n)\)。
qoj970 Best Subsequence(bonus)
题意:给出一个数组 \(a_{1\sim n}\),你需要选出长度恰好为 \(k\) 的子序列,满足两两相邻的数之和的最大值最小(头尾也相邻)。
- bonus:\(q\) 次询问 \(k\)。
考虑二分答案,一定存在某个方案满足所有的 \(\left\lfloor mid/2\right\rfloor\) 都被加入子序列,调整法证明。那么我们可以先加入这些数然后再逐个加入最小值。
然后整体二分就做完 bonus 了,具体你用堆维护会导致变化的 mid 即可。
浙公网安备 33010602011771号