CF1878 A-G 题解
前言
赛时代码可能比较难看。
为什么 Div3 会出 4 道数据结构。
A
判定 \(a\) 中是否有 \(k\) 即可。
B
奇怪的构造题。
令 \(a_1=1,a_2=3\),其他项由上一项加一开始枚举判定可行性即可,可以简单证明时间复杂度为 \(O(n)\)。
C
容易发现当 \(x\in \left[\dfrac{k(k+1)}{2},\dfrac{k(2n-k+1)}{2}\right]\) 时均可以凑出,因为可行性是连续的,证明显然。
D
额,其实这题什么性质都不用管,直接用平衡树维护翻转操作,剩下的就是模拟。
这里使用了 FHQTreap,时间复杂度为 \(O(n\log n)\),常数稍大,但可以通过。
E
容易发现区间与具有可合并性和单调性(固定左端点,显然区间与随右端点增大单调不升),所以可以直接用 ST 表维护区间与,对每个询问二分右端点即可。
注意二分时要二分最右端点!赛时 WA 了两发。时间复杂度为 \(O(n\log n)\)。
F
我们知道 \(d\) 是一个积性函数,当 \(\gcd(a,n)=1\) 时,有 \(d(n\cdot a) = d(n)\cdot d(a)\),我们容易发现 \(d(a)\) 可以取到任意正整数(\(a\) 取 \(1\) 时为 \(1\),\(a\) 取大质数 \(p\) 时为 \(2\),取 \(p^k\) 时为 \(k\)),因此判定等价于判断 \(n\) 能否被 \(d(n)\) 整除。
设 \(n\) 的唯一分解为 \(\prod p_i^{k_i}\),我们知道 \(d(n)=\prod(k_i+1)\),那么我们就直接用 map 维护 \(n\) 的唯一分解就做完了。
具体的说,当 \(n\gets n\cdot x\) 时,容易发现相当于将 \(n\),\(x\) 的唯一分解的指数相加。而要判断 \(n\) 能否被 \(d(n)\) 整除,我们只需要判断 \(d(n)\) 的唯一分解的每一项的指数是否都小于等于 \(n\) 对应的指数即可。
时间复杂度是 \(O(q(\sqrt V+\log^2 V))\),其中 \(V=10^9\)。
G
赛后花了 40 分钟写完加调完的,是一个比正解劣的做法,还难写。
逐位考虑,考虑某一位时 \(x,y\) 的链是一条 \(01\) 链,我们找到从 \(x\) 到 \(y\) 路径上的第一个 \(1\) 的位置 \(u\),将 \(u\) 到 \(y\) 的路径加 \(1\),再找到从 \(y\) 到 \(x\) 路径上的第一个 \(1\) 的位置 \(v\),将 \(v\) 到 \(x\) 的路径加 \(1\),最后查询全局最大值即可。
链加和查询最大值可以用树剖套线段树维护,找到第一个 \(1\) 的位置可以用树剖套二分加分讨做,需要预处理一个按位的前缀数组。时间复杂度为 \(O(q\log^2n\log V)\),空间复杂度为 \(O(n\log V)\)。实现精细可以通过(比如写一个 \(O(1)\) 清空线段树),不卡常跑了 4500ms。
这个做法有很高的可扩展性,比如可以做到求最大的 \(z\) 的数量。
CF1878 A-G 题解的更多相关文章
- 洛谷P3104 Counting Friends G 题解
题目 [USACO14MAR]Counting Friends G 题解 这道题我们可以将 \((n+1)\) 个边依次去掉,然后分别判断去掉后是否能满足.注意到一点, \(n\) 个奶牛的朋友之和必 ...
- 洛谷P2115 Sabotage G 题解
题目 [USACO14MAR]Sabotage G 题解 本蒟蒻又来了,这道题可以用二分答案来解决.我们可以设答案最小平均产奶量为 \(x \ (x \in[1,10000])\) .然后二分搜索 \ ...
- P2882 Face The Right Way G 题解
题目 Farmer John has arranged his N \((1 ≤ N ≤ 5,000)\) cows in a row and many of them are facing forw ...
- Hdoj 2454.Degree Sequence of Graph G 题解
Problem Description Wang Haiyang is a strong and optimistic Chinese youngster. Although born and bro ...
- P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G 题解
原题链接 POJ的链接 简要题意: 给定一张图,求多少个点,每个点都能到达它. 本题作为强连通分量的入门题. 何为强连通分量?有什么用? 下面一一解释. 首先,我们要确认,这道题目如果不用强连通分量而 ...
- USACO07NOV Cow Relays G 题解
题目 For their physical fitness program, \(N (2 ≤ N ≤ 1,000,000)\) cows have decided to run a relay ra ...
- Codeforces Round #677 (Div. 3) E、G题解
E. Two Round Dances #圆排列 题目链接 题意 \(n\)(保证偶数)个人,要表演一个节目,这个节目包含两种圆形舞蹈,而每种圆形舞蹈恰好需要\(n/2\)个人,每个人只能跳一种圆形舞 ...
- 2018年第九届蓝桥杯【C++省赛B组】B、C、D、F、G 题解
B. 明码 #STL 题意 把每个字节转为2进制表示,1表示墨迹,0表示底色.每行2个字节,一共16行,布局是: 第1字节,第2字节 第3字节,第4字节 .... 第31字节, 第32字节 给定一段由 ...
- [NOI2009] 诗人小G [题解]
诗人小G 题目大意 给出 \(n\) 个长度不超过 \(30\) 的句子,要求你对其进行排版. 对于每一行,有一个规定的行标准长度 \(L\) ,每一行的不协调度等于该行的实际长度与行标准长度差的绝对 ...
- FJUT寒假作业第二周G题解快速幂
题目来源:http://210.34.193.66:8080/vj/Contest.jsp?cid=161#P6 题意:求n个数字的乘积对c取摸.主要就是有快速幂扩展到广义幂的过程. 首先题目 ...
随机推荐
- [随笔]记一此更新win10后mysql服务消失的问题
十几天前系统自动更新 没在意 几天前用php连mysql的时候 报错 Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] 由于目标计算 ...
- python笔记:第四章使用字典
1.1 概述 说白了就是键值对的映射关系 不会丢失数据本身关联的结构,但不关注数据的顺序 是一种可变类型 格式:dic = {键:值, 键:值} 键的类型:字典的键可以是任何不可变的类型,如浮点数,字 ...
- Docker、CICD持续集成部署、Gitlab使用、Jenkins介绍
目录 1.Docker的基本操作 1.1镜像拉取 1.2镜像的操作 1.3容器的操作 运行容器 查看正在运行的容器 查看容器运行日志 进入到容器内部 停止容器运行 删除容器 启动容器 2.Docker ...
- AIGC:新AI时代,推动数字人进化的引擎
摘要:CV.NLP.大模型...AI技术的加持下,让数字人内外在更加生动真实.在未来的发展中,数字人的应用场景越来越广泛,并将发挥出重要的作用,让美好照进生活. 本文分享自华为云社区<AIGC: ...
- Linux安装与配置FTP服务
1.FTP安装与配置 1.1.FTP安装 一般使用yum直接在线安装 # 在线安装FTP yum install -y vsftpd 安装完成后查看ftp状态 # 查看ftp状态 systemctl ...
- 【MAUI Blazor踩坑日记】5.macOS上的缩放比例
macOS的页面默认比较小,原因貌似是因为符合iPad吧, 这个没啥好说的,看微软文档就可以了https://learn.microsoft.com/zh-cn/dotnet/maui/mac-cat ...
- 磁盘问题和解决: fsck,gdisk,fdisk等
错误: Resize inode not valid 对于gpt分区的硬盘一般fsck只能检查分区, 不能用于检查整个硬盘, 但是如果对硬盘设备运行时遇到这样的错误 $ sudo fsck -n /d ...
- git: failed to push some refs to
错误原因 没有添加readme文件 解决方案 git pull --rebase origin master 至此问题解决
- Gin+Xterm.js实现远程Kubernetes Pod(一)
Xterm.js简介 xterm.js (https://xtermjs.org/)是一个开源的 JavaScript 库,它模拟了一个终端接口,可以在网页中嵌入一个完全功能的终端.这个库非常灵活,并 ...
- 使用C#的窗体显示与隐藏动画效果方案 - 开源研究系列文章
今天继续研究C#的WinForm的显示动画效果. 上次我们实现了无边框窗体的显示动画效果(见博文:基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章 ),这次介绍的是未在任务栏托盘中窗体 ...