首页 > 其他分享 >UOJ随做

UOJ随做

时间:2023-05-06 16:25:33浏览次数:35  
标签:log 题解 复杂度 UR 即可 随做 UOJ 考虑

怎么都做过 uoj Round。/kk/kk/kk

只收录 UOJ 自己的题目,一些官方比赛题就算了。

没写题解不意味着没做,有的忘了写或者太草率了就算了。

部分前言删了。

【UER #1】DZY Loves Graph

题解

操作树一定形如一个毛毛虫。

考虑可撤销并查集维护联通块。

对于操作树上主干边暴力进行修改操作。

对于非主干边,可以只计算出答案。

加一条边可以使用并查集查询,删若干边的答案可以直接调之前某个版本的答案。

总复杂度 \(O(n+q\log n)\)。

【UR #1】缩进优化

题解

考虑枚举每个 \(x\) 计算答案。

假设值域为 \(v\),我们只用知道若干区间内的总和及带权和即可。

使用前缀和即可维护。

总复杂度 \(O(n+v\log v)\)。

【UR #1】外星人

题解

先排序,然后考虑有效的数一定单调减,我们在这些位置决策。

假设 \(a_1\ge a_2\ge a_3\ge\dots\ge a_n\)。

假设 \(f_{i,v}\) 表示考虑到第 \(i\) 项,模后值为 \(v\) 的方案数。

特别的,\(f_{0,v}=[v=x]\)。

显然

\[f_{j,v\bmod a_j}\leftarrow\frac{(n-i-1)!}{(n-j)!}f_{i,v}\quad(i<j) \]

于是直接前缀和优化 dp 就是 \(O(nv)\) 的了。

【UR #2】跳蚤公路

题解

upd:这个做法假了。

注意到发财等价于路径上存在负权环。

只用计算每个源点可能到达的点往自己在 \(x\) 在什么范围时可能有负权环,最后把其所能到达的点更新一下即可。

我们可以把每个 SCC 拆开来考虑。对每个 SCC 设其中一个点 \(s\) 作为源点即可,容易发现此时不存在负环等价于不存在经过 \(s\) 的负环。

设 \(f(p,j)\) 为从 \(s\) 点到 \(p\) 点经过 \(j\) 个 \(x\) 的情况下剩余部分的最小代价。

如果 \(f(s,0)=-\infty\),显然始终存在负环。

否则如果 \(f(s,0)=0\),假设 \(f(s,a)\) 与 \(f(s,b)\) 两项将导致 \(\mathbb R\) 上 \(x\) 解集为空(\(a<0<b\)),则有 \(\min\{f(s,a)+ax,f(s,b)+bx\}<0,\forall x\in\mathbb R\),也即 \(\frac{f(s,b)}{b}<\frac{f(s,a)}{a}\),从而 \(bf(s,a)+(-a)f(s,b)<0\),于是 \(f(s,0)=-\infty\),矛盾。

因此 \(\mathbb R\) 上必定存在一组合法的 \(x\)。容易发现,此时 \(x\) 应当满足

\[-\frac{f(s,b)}{b}\le x\le-\frac{f(s,a)}{a} \]

考虑怎么快速计算出 \(f(s,j)\)。

考虑用 SPFA 松弛,如果计算过程中出现任一恒负环就无解。

否则 SPFA 可以在 \(O(n^3m)\) 内出解:分层图边数 \(O(nm)\),点数 \(O(n^2)\)。不过我写了如果进队 \(8n\) 次就直接判无解,这样就是 \(O(n^2m)\) 的了。

垂死病中惊坐起,这个复杂度假的!

我们大力猜测出题人没卡,然后大力写就是了。

【UR #2】树上GCD

题解

我们考虑分开 \(u\) 是 \(v\) 的祖先的贡献,和不是祖先的贡献。

对于 \(u\) 是 \(v\) 祖先的部分,我们可以在 \(v\) 处统计合法的 \(\operatorname{dist}(u,v)\),显然是 \(1\sim\operatorname{dep}(v)\),差分即可得到每种方法的数目。(认为根节点深度为 \(0\))

对于 \(u\) 不是 \(v\) 祖先的部分,我们考虑容斥。

考虑对每个 \(g\) 计算有多少点对 \(u,v\) 满足 \(g|\operatorname{dist}(u,r),g|\operatorname{dist}(v,r)\),其中 \(r=\operatorname{lca}(u,v)\neq u,u<v\)。

考虑对 \(g>B\) 和 \(g\le B\) 讨论。

对于 \(g>B\) 的部分,我们考虑长剖,在 \(r\) 处统计 \(g\) 的贡献。

在合并一个短段时,暴力加上长段中其对应的贡献。

容易发现只在短段长度 \(>B\) 时才会统计,因此最多统计 \(n/B\) 次,枚举的 \(g\) 的总数目不超过 \(n\),于是总复杂度即为 \(O(n^2/B)\)。

对于 \(g\le B\) 的部分,我们考虑对每个 \(g\) 暴力枚举答案,则我们可以对元素按模 \(g\) 余数的高度分类,进行 dp 即可。直接做单轮是可以做到 \(O(n)\) 的,故该部分总复杂度 \(O(nB)\)。

容斥的部分复杂度可以忽略不计,取 \(B=\sqrt n\),总复杂度 \(O(n\sqrt n)\)。

实测 \(B\) 比较小的时候这个比较快。

考虑如何卡满这个复杂度。

考虑一条长度为 \(n/2\) 的链,并且在根节点处挂 \(n/4B\) 个长为 \(2B\) 的链。那么容易发现每次合并的复杂度是 \(O(n)\) 的。

这样就卡满了 \(O(n^2/B)\)。

【UR #3】铀仓库

题解

Fact 1:任意一种选法方案的最小时间是到起点距离和的 \(2\) 倍。

Fact 2:任意一种最优解均可以从某个已有的位置开始,向左右挑一个近的扩展,来得到。

我们枚举起点,然后二分套二分,即为 \(O(n\log n\log v)\)。

考虑怎么优化。

注意到当起点单调增时,我们总可以令最优的最右端点不减,尺取即可解决。对左右暴力扩展即可。

【UR #3】链式反应

题解

简单 GF。

假设答案的 EGF 为 \(g\),光子选法的 EGF 为 \(f\),则

\[g'=1+g^2f/2 \]

写一个在线卷积即可解决。

即,设 \(h=g^2/2\),则有

\[g'=1+hf,h=g^2/2 \]

从而

\[g_n=[n=1]+\frac{1}{n}\sum_jh_jf_{n-j-1} \]

\[h_n=\frac12\sum_jg_jg_{n-j} \]

直接同时处理就好了。总复杂度 \(O(n\log^2n)\)。

TBA

题解

TBA

题解

TBA

题解

TBA

题解

标签:log,题解,复杂度,UR,即可,随做,UOJ,考虑
From: https://www.cnblogs.com/myee/p/uoj-record.html

相关文章

  • 「UOJ76」懒癌
    题目点这里看题目。分析我们将罹患懒癌的狗看作“黑狗”,将健康(?)的狗看作“白狗”。记全集\(U=\{1,2,3,\dots,n\}\),图上\(k\)的邻接点集为\(N_k\)。先考虑每个人的判断逻辑,我们一天一天递推。首先,我们可以用\(p(t,S)\)表示命题:“初始黑狗的集合为\(S\)时,第\(t\)天没......
  • 第八届河南省赛 zzuoj 10407: B.最大岛屿
    10407:B.最大岛屿TimeLimit:1SecMemoryLimit:128MBSubmit:29Solved:17[Submit][Status][WebBoard]Description神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等。加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要......
  • 第八届河南省赛 zzuoj 10409: D.引水工程 (最小生成树)
    10409:D.引水工程TimeLimit: 2Sec  MemoryLimit: 128MBSubmit: 111  Solved: 40[Submit][Status][WebBoard]Description南水北调工程是优化水资源配置、促进区域协调发展的基础性工程,是新中国成立以来投资额最大、涉及面最广的战略性工程,事关......
  • 第八届河南省赛 zzuoj 10411: F.Distribution (模拟)水
    10411:F.DistributionTimeLimit: 1Sec  MemoryLimit: 128MBSubmit: 10  Solved: 7[Submit][Status][WebBoard]DescriptionOneday,WangandDongintheDubaidesertexpedition,discoveredanancientcastle.Fortunately,theyfound......
  • 「解题报告」UOJ310 黎明前的巧克力
    我还是太不懂FWT了!首先发现,两个人的集合异或和相等,那么这两个人的集合的并的异或和等于\(0\),而相对应地,每一个大小为\(k\)的异或和为\(0\)的集合都有\(2^k\)种方案。那么我们实际上就是要找所有异或和等于\(0\)的方案数。考虑集合幂级数刻画,那么我们要求的就是\(n\)......
  • UOJ #712. 【北大集训2021】简单数据结构
    题面传送门很好的题目。首先我们假设\(a\)没有初始值,这貌似是平凡的。因为这样的话如果两个位置\(x<y\)那么\(a_x\leqa_y\)对于任意时刻都成立。取\(\min\)的过程只需要线段树上二分加上区间覆盖即可。但是有初始值怎么办呢?这个问题开始变得棘手起来。但是我们发现上......
  • 「解题报告」UOJ605 [UER #9] 知识网络
    好像并不是很难的题?虽然从上午想到现在才开始写,还因为不知道__builtin_popcount(x)传入的是int调了一个多小时题目就是要求一个全源最短路。直接求显然不太现实,考虑分析标签的性质。发现,同一标签内的所有点到某个点\(u\)的最短路的差值一定不超过\(1\),因为同一标签下的点......
  • ecnuoj 5042 龟速飞行棋
    5042.龟速飞行棋题目链接:5042.龟速飞行棋赛中没过,赛后补题时由于题解有些抽象,自己写个题解。可以发现每次转移的结果只跟后面两个点的胜负状态有关。不妨设\(f_{u,a,b}\)表示,\(u+1\)号点的胜负态为\(a\),\(u+2\)号点的胜负态为\(b\),此时从\(1\)号点出发的胜负态是......
  • BUUOJ-BUU LFI COURSE 1 1
    看题目是个本地文件包含  简单审计以下,包含一个file参数并包含这个参数所代表的文件。  根据之前在buuoj做题时遇到的flag,盲猜是/flag ......
  • [uoj234]Towns
    记直径为\((x,y)\),则有以下做法:利用直径的经典做法,可以\(3n\)次询问得到\(x,y\)和其余点到\(x,y\)的距离设直径上距离\(i\)最近的点为\(k\),已知\(x,y,i\)两两距离,即可......