由于今天实在是太自闭了就前来写场已经 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. UnboundLocalError: local variable 'range' referenced before assignment

    1. 报错信息 UnboundLocalError: local variable 'range' referenced before assignment 2. 代码 class Car(): &q ...

  2. SpringMVC、Spring、MyBatis整合(IDEA版)

    1 环境准备 1.1 软件架构 JDK 1.8 Spring 4.x Mybatis 3.x Maven 3.x MySQL 5.7 1.2 创建数据库 创建数据库,数据库名ssm-demo,字符集u ...

  3. Flink Yarn的2种任务提交方式

    Flink Yarn的2种任务提交方式 Pre-Job模式介绍 每次使用flink run运行任务的时候,Yarn都会重新申请Flink集群资源(JobManager和TaskManager),任务执 ...

  4. Java RMI学习与解读(一)

    Java RMI学习与解读(一) 写在前面 本文记录在心情美丽的一个晚上. 嗯.就是心情很美丽. 那为什么晚上还要学习呢? emm... 卷... 卷起来. 全文基本都是根据su18师傅和其他师傅的文 ...

  5. 手把手教你学Dapr - 2. 必须知道的概念

    Sidecar 边车 Dapr API提供Http和gRPC两种通讯方式. 运行方式则可以是容器也可以是进程(Windows开发推荐使用Self Hosted,后续会解释). 这样的好处是与运行环境无 ...

  6. Manacher(马拉车)

    Able was I ere I saw Elba.     ----Napoléon Bonaparte(拿破仑) 一.回文串&回文子串   这个很好理解. 如果一个字符串正着读和反着读是一 ...

  7. USB_ID OTG

    谁知道USB_ID pin 脚的功能意义?是干什么用的?USB 中不就有 VDD,GND,USB+,USB- 并没有USB_ID 的信息呀?检测ID脚状态高低,从而判断为主设备或从设备,otg的时候用 ...

  8. 字符串匹配(kmp+trie+aho-corasic automaton+fail tree)

    目录 kmp 那么怎么快速求最长前缀后缀呢 trie aho-corasic automaton fail tree kmp 对于一个字符串\(s_{0\dots n}\),称\(s_{0\dots ...

  9. 洛谷 P3209 [HNOI2010] 平面图判定

    链接: P3209 题意: 给出 \(T\) 张无向图 \((T\leq100)\),并给出它对应的哈密顿回路,判断每张图是否是平面图. 分析: 平面图判定问题貌似是有线性做法的,这里给出链接,不是本 ...

  10. Nginx(二):Nginx的四层(L4)和七层(L7)负载均衡

    OSI七层模型 和 TCP/IP四层模型 四层负载均衡( L4 Load Balancing ) 四层负载均衡,主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内 ...