\(\mathscr{Description}\)

  长度为 \(n\) 的序列 \(A\) 初始全 \(0\), \(C=0\). 第 \(i\ge0\) 个时刻对 \(A\) 进行如下变换:

  • \(\forall i\in[1,n],~a_i\gets a_i+i\).

  • \(\forall i\in[1,n]\land a_i>h_{i\bmod m},~a_i\gets h_{i\bmod m},C\gets C+1\).

给出 \(q\) 次询问, 每次给出 \(k\), 求出 \(C\) 在 \(k\) 时刻后的值.

\(\mathscr{Solution}\)

  (嘴巴.)

  一个结论: 每次被赋值的数是 \(A\) 的一个后缀.

  另一个结论: 若 \(a_i\) 在 \(t\) 时刻被赋值, 则一定在 \(t+m\) 时刻被再次赋值.

  由结论一, 先求出 \(a_1\) 第一次被赋值的位置. 设是 \(h_k\) 在 \(t\) 时刻将它赋值. 那么, 其他所有数都会在 \(t\) 时刻被赋值. 对于 \(a_i\), 设其第一次被 \(h_k\) 赋值的时刻为 \(t'\), 那么其第一次被赋值的时刻 \(t''\) 应当有 \(t''\in[t'-m,t]\). 而因为 \(h_k\) 是已知的, 所以从 \(t'-m\) 到 \(t\), 以此检查的 \(h\) 也是确定的. 而设 \(a_i\) 进入循环时值为 \(b\), 其被赋值需要满足 \(h_x<kx+b\), 若一个区间存在使得 \(h_x-kx-b<0\) 的 \(x\), \(a_i\) 就会被其中的数赋值. 所以对下标建立线段树, 每个区间维护斜率单调栈, 即可 \(\mathcal O(n\log n)\) 线段树二分求出每个数第一次被赋值的时刻.

  对于询问, 我们需要求出若干完整周期的贡献和一段循环前缀的贡献. 前者比较好算. 对于后者, 二分得到被赋值至少一次的后缀 \([p,n]\), 将询问挂在 \(p\) 处. 从后往前扫描 \(a\), 每次 \(a\) 会失去一些赋值时刻, 建立关于时间的线段树维护历史和即可. 复杂度 \(\mathcal O(n\log n)\) (\(n,q\) 同阶.)

Solution -「NOI Simu.」记忆的更多相关文章

  1. Solution -「NOI 2016」「洛谷 P1587」循环之美

    \(\mathcal{Description}\)   Link.   给定 \(n,m,k\),求 \(x\in [1,n]\cap\mathbb N,y\in [1,m]\cap \mathbb ...

  2. Solution -「NOI 2021」「洛谷 P7740」机器人游戏

    \(\mathcal{Description}\)   Link.   自己去读题面叭~ \(\mathcal{Solution}\)   首先,参悟[样例解释 #2].一种暴力的思路即为钦定集合 \ ...

  3. Solution -「NOI 2020」「洛谷 P6776」超现实树

    \(\mathcal{Description}\)   Link.   对于非空二叉树 \(T\),定义 \(\operatorname{grow}(T)\) 为所有能通过若干次"替换 \( ...

  4. Solution -「NOI 2012」「洛谷 P2050」美食节

    \(\mathcal{Description}\)   Link.   美食节提供 \(n\) 种菜品,第 \(i\) 种的需求量是 \(p_i\),菜品由 \(m\) 个厨师负责制作,第 \(j\) ...

  5. Solution -「NOI 2008」「洛谷 P3980」志愿者招募

    \(\mathcal{Description}\)   Link.   一项持续 \(n\) 天的任务,第 \(i\) 天需要至少 \(a_i\) 人工作.还有 \(m\) 种雇佣方式,第 \(i\) ...

  6. Solution -「NOI 2018」「洛谷 P4768」归程

    \(\mathcal{Description}\)   Link.   给定一个 \(n\) 个点 \(m\) 条边的无向连通图,边形如 \((u,v,l,a)\).每次询问给出 \(u,p\),回答 ...

  7. Solution -「ARC 104E」Random LIS

    \(\mathcal{Description}\)   Link.   给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率 ...

  8. Solution -「NOI 模拟赛」彩色挂饰

    \(\mathcal{Description}\)   给定一个含 \(n\) 个点 \(m\) 条边的简单无向图,设图中最大点双的大小为 \(s\),则保证 \(s\le6\).你将要用 \(k\) ...

  9. Solution -「NOI 模拟赛」出题人

    \(\mathcal{Description}\)   给定 \(\{a_n\}\),求一个 \(\{b_{n-1}\}\),使得 \(\forall x\in\{a_n\},\exists i,j\ ...

  10. Solution -「NOI.AC 省选膜你赛」array

    题目 题意简述   维护一个长度为 \(n\) 的序列 \(\{a_n\}\),并给出 \(q\) 个操作: 将下标为 \(x\) 的数修改为 \(y\). 给定 \(l,r,k\),求最大的 \(m ...

随机推荐

  1. php技术交流群

    php技术交流群-656679284,为PHP广大爱好者提供技术交流,有问必答,相互学习相互进步!也欢迎大牛入群指导!

  2. 2.15 Linux中一切皆文件[包含优缺点]

    Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘.监视器.硬盘.打印机)是文件,就连套接字(socket). ...

  3. Python文件读取和写入方法

    读取 # 通过单字符串空格分隔 def count_words(filepath): with open(filepath, 'r') as file: string = file.read() st ...

  4. 2024最新免费IP地址SSL证书申请

    为IP地址申请免费的SSL证书相对较为困难,因为多数证书颁发机构(CA)提供的免费SSL证书主要是基于域名的.不过,还是可以尝试以下方法来申请免费的IP地址SSL证书: 一.确认IP地址与了解需求 确 ...

  5. 鸿蒙开发Hvigor插件动态生成代码

    Hvigor允许开发者实现自己的插件,开发者可以定义自己的构建逻辑,并与他人共享.Hvigor主要提供了两种方式来实现插件:基于hvigorfile脚本开发插件.基于typescript项目开发.下面 ...

  6. typeScript 基础类型 (三)

    typeScript 的基础类型包含 Boolean.Number.String.null.undefined 以及 ES6 的  Symbol 和 ES10 的 BigInt. 下面介绍每种类型的使 ...

  7. vivo 企业云盘服务端实现简介

    作者:来自 vivo 互联网存储团队- Cheng Zhi 本文将介绍企业云盘的基本功能以及服务端实现. 一.背景 vivo 企业云盘是一个企业级文件数据管理服务,解决办公数据的存储.共享.审计等文件 ...

  8. linux 查看进程的bin文件所在路径

    1.获取进程pid ps aux |grep nginx|grep master|grep -v grep|awk '{print $2}' 2.根据进程pid 获取 bin路径 方法a pwdx p ...

  9. 二、STM32F103C8T6-定时器

    STM32F103C8T6 定时器概述 STM32F103C8T6 作为一款广泛使用的微控制器,内置多个定时器,能够支持多种计时和控制功能,如精确延时.脉冲宽度调制(PWM).捕获比较(Capture ...

  10. Mac 上常见的环境配置文件

    当使用命令行终端进行开发时,环境配置文件可以用来自动化执行一些命令或设置环境变量,以提高工作效率和方便使用.在 Mac 上,常见的环境配置文件有以下几种: 1. 在.bash_profile文件中配置 ...