UOJ Round总结
#22. 【UR #1】外星人
一开始随便搞出第一问答案,很显然的性质对$x$有变化的$a$一定是递减的,就拿一个桶直接记录可以达到的值
然后我开始想第二问,一开始想直接在这个桶上统计答案,然后发现不行,之后再想,如果利用上面的性质,在选取了一个$a_i \leq x$时,会有一段区间的$a$可以随便插入到$a_i$之后,然后就被一些组合数学的细节绕晕,没有想清楚,这一段区间是$(x \mod a_i,x]$,并且要在$a_i$中挑一个出来放在最前面,然后会发现$x \mod a_i$是一个子问题,搞出来这个合法方案排列数后,将$(x \mod a_i,x]$中的数,插入排列中,方案数$(sum[x \mod a_i]+1)(sum[x \mod a_i]+2)...(sum[x]-1)$,即$\frac{sum[x-1]!}{sum[x \mod a_i]!}$
那么就设$dp[i]$为当前$x=i$时最大答案,$f[i]$为$x=i$且满足最大答案时的方案数
$dp[i]=\max dp[i \mod a_j]$ $(a_j \leq i)$
然后f[i]由那些可以得到最大答案的$f[i \mod a_j]$根据上面的更新得到
#33. 【UR #2】树上GCD
首先考虑枚举$LCA$,那么就是统计统计利用不同子树各个深度的信息来统计答案,由于是深度信息,那么考虑利用长链剖分来维护这个信息,首先常规套路是继承重儿子信息,暴力维护轻儿子信息
先假设有两个数组$a,b$其中$a[i],b[i]$分别表示以该选定的$LCA$为根时,某一棵子树内深度为$i$的点的个数
考虑枚举答案$k$,那么开始推式子
$\sum_{i=1}^{n} \sum_{j=1}^{m} [gcd(i,j)=k]a[i]*b[j]$
$\sum_{i=1}^{\lfloor \frac{n}{k} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{k} \rfloor} [gcd(i,j)=1]a[ik]b[jk]$
$\sum_{i=1}^{\lfloor \frac{n}{k} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{k} \rfloor} a[ik]b[jk] \sum_{d|gcd(i,j)} \mu (d)$
$\sum_{d=1}^{\lfloor \frac{n}{k} \rfloor} \mu(d) \sum_{i=1}^{\lfloor \frac{n}{kd} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{kd} \rfloor} a[ikd]b[jkd]$
$\sum_{d=1}^{\lfloor \frac{n}{k} \rfloor} \mu(d) (\sum_{i=1}^{\lfloor \frac{n}{kd} \rfloor} a[ikd]) (\sum_{j=1}^{\lfloor \frac{m}{kd} \rfloor} b[jkd])$
在维护答案的时候,会产生对于一个数组下标为kd倍数的个数和,并且可以发现$a,b$数组可以简单的维护,只是每次重儿子继承上来的信息不能每一次都遍历一遍(轻儿子可以)
那么考虑根号分治
对于$> \sqrt n$的询问直接暴力查询,每一次查询是$\sqrt n$的时间复杂度,最终均摊时间复杂度为$O(n\sqrt n)$
对于$< \sqrt n$的询问,这样进行考虑,由于每一次dfs下去之后,进行重儿子继承的是一段重链不断向上更新,那么考虑记$dp[i][j]$表示当前重链继承上来深度$%i=j$的个数有多少,每次询问时$O(1)$,轻儿子合并时,更新$dp$值就可以了,然后如果更新到重链顶时,就清空$dp$数组(注意不能直接把所有的dp值都清空,只能清空用过的$dp$值,否则时间复杂度不对)那么均摊复杂度也为$O(n\sqrt n)$
#32. 【UR #2】跳蚤公路
首先题目的意思就是让我们找出负环,解出$x$在环上不等式的解集
然后可以发现一个环的解集一定是一个形如$kx+b \geq 0$的形式,那么对于某一个点,其解集一定是一个连续的区间$[L,R]$,这样可以二分出来,注意这里先需要找出合法区间内的一个合法解,之后再能两次二分出左右端点,求一个合法解的方法也是二分,二分出$mid$后,如果不存在负环,那么说明这一定是一个合法解直接返回即可,如果有负环,那么用spfa跑出来之后,看是$+1$还是$-1$的边使得当前的图存在负环,只要记录一下到每一个点的$+1/-1$之和,如果为正,那么需要变大,如果为负,那么需要变小
那么最暴力的方法对于每一个点直接二分出这个区间,这样复杂度为$O(n^2mlogw)$
考虑强连通分量缩点,那么负环只有可能存在于强连通分量中,缩点后的图是一个DAG,最终某一个点的答案一定是1号点到这个点在DAG上走过所有强连通分量解集的交
那么有效的环一定是在某一个强连通分量中,只要对每一个强连通分量二分求出其合法区间即可,那么这个算法的上界是$O(nmlogw)$
那么最后合并答案的时候,只要进行拓扑序,然后上界取$min$,下界取$max$即可
题解中给出另外一种做法
考虑在spfa结束后,什么样的节点是在负环上的
设$f(n,i)$表示经过$n$轮之后到达$i$的最小路径
对于节点$i$,$i$在负环上的充要条件是
$f(n,i) \leq f(n-1,i)$
现在设$g(n,i,k)$表示经过$n$轮之和到达$i$并且到到这个节点的不等式$x$前的前的系数为$k$最短路径
$f(n,i)=\min\{g(n,i,k)+kx\}$
带入到上式得$ \min\{g(n,i,k)+kx\} \leq \min\{g(n-1,i,j)+jx\}$
解这个不等式即可
代码我只写了我的那个做法
UOJ Round总结的更多相关文章
- UOJ Round #1 [数论 | DP 排列]
UOJ Round #1 难度很良心啊! 做出了前两题,第三题看到仙人掌就吓哭了. [UR #1]缩进优化 就是求 \[ \sum_{i=1}^n a_i - (x-1)\sum_{i=1}^n\lf ...
- UOJ Round #15 [构造 | 计数 | 异或哈希 kmp]
UOJ Round #15 大部分题目没有AC,我只是水一下部分分的题解... 225[UR #15]奥林匹克五子棋 题意:在n*m的棋盘上构造k子棋的平局 题解: 玩一下发现k=1, k=2无解,然 ...
- 【UOJ Round #5】
构造+贪心/数论 为什么只有两个标题呢……因为第二题我不会…… 怎样提高智商 构造题……然而一开始半天我都yy不出来…… 后来我想:这题应该不会特别麻烦,而且既然样例只给了1,可能再给大一点就让人发现 ...
- 【UOJ Round #1】
枚举/DP+排列组合 缩进优化 QAQ我当时一直在想:$min\{ \sum_{i=1}^n (\lfloor\frac{a[i]}{x}\rfloor + a[i] \ mod\ x) \}$ 然而 ...
- 【UOJ Round #8】
A 一道不错的题,虽然大家都觉得是水题,然而蒟蒻我想出来的好慢……Orz alpq 发现其实就是一个网格图,每一个大块都是同一颜色……横纵坐标互不干扰…… //UOJ Round #8 A #incl ...
- UOJ Round #8 赴京赶考 解题报告
算法零 $n,m \le 100, q \le 10$ 的话,直接给网格中的每一个格点都建一个点,然后该怎么最短路就怎么最短路,该怎么并查集+BFS就怎么并查集+BFS. 复杂度 $O(qnm)$,可 ...
- [UOJ Round#4 A] [#51] 元旦三侠的游戏 【容斥 + 递推】
题目链接:UOJ - 51 据说这题与 CF 39E 类似. 题目分析 一看题目描述,啊,博弈论,不会!等待爆零吧... 这时,XCJ神犇拯救了我,他说,这题可以直接搜啊. 注意!是用记忆化搜索,状态 ...
- 【UOJ Round #3】
枚举/二分 C题太神窝看不懂…… 核聚变反应强度 QwQ很容易发现次小的公约数一定是gcd的一个约数,然后……我就傻逼地去每次算出a[1],a[i]的gcd,然后枚举约数……这复杂度……哦呵呵... ...
- UOJ Round #1 题解
题解: 质量不错的一套题目啊..(题解也很不错啊) t1: 首先暴力显然有20分,把ai相同的缩在一起就有40分了 然后会发现由于原来的式子有个%很不方便处理 so计数题嘛 考虑一下容斥 最终步数=初 ...
随机推荐
- 如何查找一个为NULL的MYSQL字段
前言:在做这个题目 https://www.cnblogs.com/pipihao/p/13786304.html 因为之前 我好像没有接触过什么 为NULL字段的查询,细节不小 WHERE 字段 I ...
- 【linux】基础命令一
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ mount dir[] device[]umount devic[]maste ...
- lumen-ioc容器测试 (2)
lumen-ioc容器测试 (1) lumen-ioc容器测试 (2) lumen-ioc容器测试 (3) lumen-ioc容器测试 (4) lumen-ioc容器测试 (5) lumen-ioc容 ...
- kafka伪集群搭建
https://blog.csdn.net/zxy987872674/article/details/72466504
- spring boot:实现图片文件上传并生成缩略图(spring boot 2.3.1)
一,为什么要给图片生成缩略图? 1, 用户上传的原始图片如果太大,不能直接展示在网站页面上, 因为不但流费server的流量,而且用户打开时非常费时间, 所以要生成缩略图. 2,服务端管理图片要注意的 ...
- linux(centos8):kubernetes安装的准备工作
一,安装docker-ce19.03.11 1,卸载podman [root@kubemaster ~]# dnf remove podman podman是红帽系os自带的容器,卸载是为了避免冲突 ...
- centos8上配置openresty/nginx可访问php
一,创建一个测试站的目录 [root@yjweb data]# mkdir dev [root@yjweb data]# cd dev [root@yjweb dev]# mkdir think_ww ...
- nginx 是如何处理过期事件的?
目录 什么是过期事件 nginx 是如何处理过期事件的? 参考资料 什么是过期事件 对于不需要加入到 post 队列 延后处理的事件,nginx 的事件都是通过 ngx_epoll_process_e ...
- apache自带的ab测试失败请求原因
只要出现 Failed requests 就会多出现一行要求失败的各原因的数据统计,分别有 Connect, Length, 与 Exception 三种,分别代表的意义为:Connect ...
- GoogleHacking基本语法使用
查看网络后台 intitle:admin 搜索url中的关键字:asp?id= inurl:asp?id=