由于今天实在是太自闭了就前来写场已经 AK 的 div.2 的题解了

这场比赛是我的 div.2 首 AK 哦

A

先特判 \(b=1\),强制将 \(b+1\)

否则容易发现答案最大为 \(\log_ab\),所以直接枚举 \(b\) 加了多少次,枚举到 \(30\) 就行了。

B

考虑一个数组 \([a_1,a_2,\dots,a_n]\) 有多少个与其 \(k\)-similar 的数组。

对于 \(2\leq i\leq n-1\),如果我们替换 \(a_i\) 为 \(x\),那么必须有 \(a_{i-1}<x<a_{i+1}\) 且 \(x\neq a_i\),共有 \(a_{i+1}-a_{i-1}-2\) 种选择。

如果我们替换 \(a_1\) 为 \(x\),那么必须有 \(1\leq x<a_2\) 且 \(x\neq a_1\),有 \(a_2-2\) 种选择,替换 \(a_n\) 也同理。

故答案为 \(a_{l+1}-2+k-1-a_{r-1}+\sum\limits_{i=l+1}^{r-1}a_{i+1}-a_{i-1}-2\),前缀和维护一下即可。

注意特判 \(l=r\)。

C

现场降智了写了个整除分块。。。

设 \(r=a\bmod b\),注意到 \(a=br+r=(b+1)r\leq x\),而 \(b>r\),故 \(r(r+1)<x\)。

考虑直接枚举 \(r\),那么我们就要统计 \(r<b\leq y\) 且 \((b+1)r\leq x\) 的 \(b\) 有多少个。显然为 \(\max(0,\min(y,\lfloor\dfrac{x}{r}\rfloor-1)-c)\)

D

这题 tm 竟然卡了我 40min

暴力显然是不行的,不过我们发现一个性质,那就是 \(1\sim 16\) 的 LCM 为 \(720720\),并且 \(16^4<720720<10^6\)

于是考虑黑白染色,白色格子填 \(720720\),黑色格子填 \(720720-x^4\),这样就符合题目的条件了。

E

首先注意到红色棋子移动的路线一定是从根节点开始,向下移动一段距离到达某个点 \(x_1\),然后跳到同一深度的某一点 \(y_1\),然后再向下移动一段距离到达某个点 \(x_2\),然后再跳到某个 \(y_2\),以此类推直到到达叶子节点。

于是考虑 \(dp\),我们设 \(dp_i\) 表示红色棋子走到 \(i\) 处的答案的最大值。

但发现这样不好表示当前深度是否进行了交换,于是考虑换个状态,\(dp1_i\) 表示红色棋子位于 \(i\),并且在当前深度没有进行交换的最大值,\(dp2_i\) 表示红色棋子位于 \(i\),并且在当前深度已经进行了交换的最大值。

状态转移方程:

\(dp1_i=\max(dp1_{fa_i}+mxv_{fa_i},dp2_i)\)

\(dp2_i=\max\limits_{j\ \text{与}\ i\ \text{在同一深度}}dp1_j+|a_j-a_i|\)

一看就懂。

其中 \(mxv_i\) 表示在与 \(i\) 同一深度的点 \(j\) 中 \(|a_j-a_i|\) 的最大值,显然 \(j\) 要么是与 \(i\) 同一深度中的点中权值最大的,要么是与 \(i\) 同一深度的点中权值最小的。

但是朴素地计算 \(dp2_i\) 最坏可达 \(n^2\)。不过注意到当 \(a_j<a_i\) 时的贡献为 \(dp1_j+a_i-a_j\),\(a_j>a_i\) 时的贡献为 \(dp1_j+a_j-a_i\),于是我们考虑将每一深度的点的权值从小到大排序,然后从小到大、从大到小各扫一遍并实时分别维护 \(dp1_j-a_j\),\(dp1_j+a_j\) 的最大值,这样转移复杂度就讲到 \(n\log n\) 了。

F

一道水水的 F。

首先求一遍 \(b\) 数组的前缀和 \(s_i\)

考虑一个 naive 的 dp 状态,\(dp_{i,j}\) 表示填了前 \(i\) 个位置,上一个 \(a_j\neq b_j\) 的位置为 \(j\)。

那么有转移方程式:

\(\begin{cases}dp_{i,j}\rightarrow dp_{i+1,j}\\dp_{i,j}\times[b_{i+1}-(s_i-s_{j-1})\neq b_{i+1}]\rightarrow dp_{i+1,i+1}\end{cases}\)

考虑将两维压成一维,设 \(f_i=\sum dp_{i,j}\),那么 \(f_i=\sum\limits_{j=0}^{i-1}f_j\times[(s_{i-1}-s_{j-1})\neq 0\),于是再实时维护一个 \(t_x=\sum\limits_{s_{i-1}=x}f_i\) 就可以行了。这个可以用 std::map 实现,复杂度线对

Codeforces Round #701 (Div. 2) 题解的更多相关文章

  1. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  2. Codeforces Round #608 (Div. 2) 题解

    目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...

  3. Codeforces Round #525 (Div. 2)题解

    Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...

  4. Codeforces Round #528 (Div. 2)题解

    Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...

  5. Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F

    Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...

  6. Codeforces Round #677 (Div. 3) 题解

    Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...

  7. Codeforces Round #665 (Div. 2) 题解

    Codeforces Round #665 (Div. 2) 题解 写得有点晚了,估计都官方题解看完切掉了,没人看我的了qaq. 目录 Codeforces Round #665 (Div. 2) 题 ...

  8. Codeforces Round #160 (Div. 1) 题解【ABCD】

    Codeforces Round #160 (Div. 1) A - Maxim and Discounts 题意 给你n个折扣,m个物品,每个折扣都可以使用无限次,每次你使用第i个折扣的时候,你必须 ...

  9. Codeforces Round #383 (Div. 2) 题解【ABCDE】

    Codeforces Round #383 (Div. 2) A. Arpa's hard exam and Mehrdad's naive cheat 题意 求1378^n mod 10 题解 直接 ...

随机推荐

  1. AIApe问答机器人Scrum Meeting 4.23

    Scrum Meeting 1 日期:2021年4月23日 会议主要内容概述:各成员汇报进度情况,前后端针对WebAPI进行协调与统一工作. 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完 ...

  2. RocketMQ源码详解 | Producer篇 · 其二:消息组成、发送链路

    概述 在上一节 RocketMQ源码详解 | Producer篇 · 其一:Start,然后 Send 一条消息 中,我们了解了 Producer 在发送消息的流程.这次我们再来具体下看消息的构成与其 ...

  3. Noip模拟20 2021.7.19

    T1 玩具 题目读错意思直接报零... 拼接方式没读懂以为是个数学题,用卡特兰数,可是的确想多了 数据范围表达出你怎么暴力都行,选择$n^3,dp$ 相当于一片森林,每次多加一条边就合并成一棵树 在$ ...

  4. 攻防世界 杂项 9.a_good_idea

    题目描述: 汤姆有个好主意 解题思路: 首先按照隐写思路找了一下没找到flag,接着使用winhex打开图片,发现图片里面又包含了一张图片,然后马上改了一下后缀为zip, 解压后发现里面有:hint. ...

  5. Awesome metaverse projects (元宇宙精选资源汇总)

    Awesome Metaverse 关于 Metaverse 的精彩项目和信息资源列表. 由于关于 Metaverse 是什么存在许多相互竞争的想法,请随时以拉取请求.问题和评论的形式留下反馈. We ...

  6. Jenkins file一行代码部署.NET程序到K8S

    什么是Jenkins共享库 随着微服务的增多,每个项目的都需要pipline文件,这样的话Pipeline代码冗余度高,并且pipeline的功能越来越复杂. jenkins可以使用Shared Li ...

  7. find 删除日志文件

    find 命令删除日志文件 find ./my_dir -mtime +10 -type f -delete EXPLANATIONS ./my_dir your directory (replace ...

  8. layui表格-template模板的三种用法

    问题情境: layui中将数据库数据通过layui table渲染到前端表格,非常简单,但是如果数据库存储的信息不能被直接展示,项目中该页面有好几个这样的字段,会员类型,支付类型,会员时长还有平台类型 ...

  9. 一次Java线程池误用(newFixedThreadPool)引发的线上血案和总结

    一次Java线程池误用(newFixedThreadPool)引发的线上血案和总结 这是一个十分严重的线上问题 自从最近的某年某月某天起,线上服务开始变得不那么稳定(软病).在高峰期,时常有几台机器的 ...

  10. 【JAVA】编程(5)---递归

    作业要求: 利用递归来计算出 从1加到100的数和 : public class 递归 { public static void main(String[] args) { System.out.pr ...