CTT 2018

link

Day 1

A

计算几何,还不会,有空学一下。

B

简单题,只需要看 bidi2 即可。

那么对于一个确定的 bi,对这个东西的贡献是对称的。

也就是 (bi,x)(bi,bi/x) 这两个方案互为倒数。

也就是只要算出等于一的方案,加上后除以二就行。

算出相等的,相当于每一个质因数都要相同,跑个暴力 dp 就行。

C

点分治方案数,考虑给点标号,标的号小的在点分树上深度小。

那么两个标号相同的中间必须有一个标号小的点。

那么一个子树填完后,给外面还有贡献的有一些点,两个子树合并的时候,相当于当前点去作为一个前缀的父亲(点分树上),然后对于剩下的点,两个子树合并需要满足标号不交,那么就是一个简单的组合数。

fu,i+j=fu,isv,j(i1+jj)

sf 的后缀和。

也可以理解为是两个点分树合并,本质就是两条链进行合并,第二维记录的是 u 所在链的长度。

Day 2

A

首先考虑没有修改,只能离线下来长剖做,然后发现有修改很难做了。

强制离线,每 Q 个操作分个块,然后过一个块重构,然后块内修改暴力即可,复杂度 O(nQ)

回顾了一下长剖写法,这种需要算前缀和的长剖的常见套路是记录后缀和。

代码写完就过了,很爽。

B

类似与同余最短路,因为 1×1 的方格是 4SC 最小的,而且一定有的放,因此考虑对于每个 4SC 计算凑出这个的最小的 S

因为放置的矩形的宽 aS,因此枚举 a,然后接下来先放置一个 a×a 的,然后后面可以接 1×a,直接完全背包一下就行。

C

欧拉数板子题,懒了。

Day 3

A

skip。

B

后缀平衡树,有时间学。

C

nk 不大,可以暴力 dp,关键是如何计算区间的答案。

扫描线一下,注意到区间所需时间就是每个点到根路径的并的大小,因此对于一个点,如果它子树里有一个在区间中的点,那么对答案就有贡献,把贡献放在最右边的那个点上。

考虑加入一个点树上那些点会属于这个,相当于就是它到根的路径,因此 LCT Access 一下,维护一下颜色就做完了。

复杂度 O(nklogn),遥遥领先,也不知道别人写的啥。

Day 4

A

构造好题。

用 SPFA 的序列去模拟 dij,注意到一个点如果最后一次出现一定是它已经成为了最短路,把这些位置标出来。

而在两个最优点中间这一段东西,就是前面一个最优点以及它前面那些普通点更新的东西,注意到最优点一定是由前面的最优点来更新的,所以可以直接把最优点拉成一条链。

中间这一段东西,我也直接强制让前面的那个最优点来更新就好了,只需要记录一个当前最短路,减一就行。

还需要保证前面的普通点当前无法更新其他点,那么说明其连出去的点权需要 260disx,记录一下就行,在后面连的时候注意一下。

B

题解也没有,代码也没有,以下内容口胡。

首先发现,第一问的答案是最大匹配。

考虑下界,最大匹配肯定是一种合法方案,因为只要把孤立点挂上去就行。

上界的话,每个连通块至少需要包含左右的点,因此不可能有更大的方案。

k 的限制的话,连通块个数最多说明边数最少,一个不满足连通块数最多的方案可以断边调整成最多的。

可以发现这样每个连通块都是一个菊花图,不过没什么用。

第二问已知总边数,直接每个点流量 [1,k] 的上下界网络流就行了。

还没学,先咕。

C

skip。

posted @   houzhiyuan  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
主题色彩