| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Codeforces Round #741 div.2 A-D题解 -> 正文阅读 |
|
[数据结构与算法]Codeforces Round #741 div.2 A-D题解 |
视频讲解:TBD A. The Miracle and the Sleeper题目大意给定两个正整数 l , r ? ( 1 ≤ l ≤ r ≤ 1 0 9 ) l,r~(1 \leq l \leq r \leq 10^9) l,r?(1≤l≤r≤109) ,求满足 r ≥ a ≥ b ≥ l r \ge a \ge b \ge l r≥a≥b≥l 的最大的 $a \mod{b} $ 。 题解若
l
l
l 足够小,那么
a
a
a 应该取
r
r
r ,
b
b
b 应该取
?
r
+
1
2
?
\lfloor \frac{r+1}{2} \rfloor
?2r+1?? ,答案为
?
r
?
1
2
?
\lfloor \frac{r-1}{2} \rfloor
?2r?1?? 。 参考代码
B. Scenes From a Memory题目大意给定一个十进制下不包含 0 0 0 的整数 n ( 1 ≤ n < 1 0 50 ) n(1 \le n < 10^{50}) n(1≤n<1050) ,删除最多的数字,使其变为非素数。 给定数据保证有解,若有多组解则输出任意一种即可。 题解若包含
1
,
4
,
6
,
8
,
9
1,4,6,8,9
1,4,6,8,9 之一,则直接输出一位数即可。 因此,答案必定为二位数,可以通过上述方式分类讨论,也可以直接枚举得到。 参考代码
C. Rings题目大意有一个长度为 n ? ( 2 ≤ n ≤ 2 ? 1 0 4 ) n~(2 \leq n \leq 2\cdot 10^4) n?(2≤n≤2?104) 仅由01构成的字符串 s s s 。 定义函数 f f f 表示将字符串视为二进制数后再转为十进制数的结果,例如 f ( 001010 ) = 10 f(001010)=10 f(001010)=10 。 你需要找到满足以下条件的两对整数 ( l 1 , r 1 ) , ( l 2 , r 2 ) (l_1,r_1),(l_2,r_2) (l1?,r1?),(l2?,r2?) :
题解由于是二进制下截取子串,因此考虑
k
=
2
k=2
k=2 的情况。 当不存在上述
i
i
i 时,则表示
s
s
s 后半段全为
1
1
1 。 参考代码
D1+D2. Two Hundred Twenty One题目大意有一个长度为 n ? ( 1 ≤ n ≤ 3 ? 1 0 5 ) n~(1 \leq n \leq 3 \cdot 10^5) n?(1≤n≤3?105) 的仅由±组成的字符串 s s s ,其中+可以视为 1 1 1 ,-可以视为 ? 1 -1 ?1 。字符串合法的条件是奇数位之和等于偶数位之和,即 ∑ i = 1 n ( ? 1 ) i ? 1 s i = 0 \sum_{i=1}^n(-1)^{i-1}s_i=0 ∑i=1n?(?1)i?1si?=0 。 有 q ( 1 ≤ q ≤ 3 ? 1 0 5 ) q(1 \leq q \leq 3 \cdot 10^5) q(1≤q≤3?105) 次询问,每次给定区间 [ l , r ] ? ( 1 ≤ l ≤ r ≤ n ) [l,r]~(1 \leq l \leq r \leq n) [l,r]?(1≤l≤r≤n) ,求最少需要删除多少字符,才能使得子串 s [ l , r ] s[l,r] s[l,r] 合法。 对于Easy Version,只需输出删除数量。 题解定义字符串
s
s
s 的权值为
∑
i
=
1
∣
s
∣
(
?
1
)
i
?
1
s
i
\sum_{i=1}^{|s|}(-1)^{i-1}s_i
∑i=1∣s∣?(?1)i?1si? 因此
f
(
i
+
1
)
?
f
(
i
)
f(i+1)-f(i)
f(i+1)?f(i) 的值必定为
0
0
0 或
±
2
\pm 2
±2 。 f ( r ) = s u m r ? 1 ? s u m l ? 1 = ? f ( l ) ? s r + s l f(r)=sum_{r-1}-sum_{l-1}=-f(l)-s_r+s_l f(r)=sumr?1??suml?1?=?f(l)?sr?+sl? 易得
f
(
r
)
+
s
r
f(r)+s_r
f(r)+sr? 与
f
(
l
)
?
s
l
f(l)-s_l
f(l)?sl? 互为相反数。
对于Easy version,
对于Hard version, 因此可以将每个 i i i 放入 s u m i + s u m i ? 1 sum_i+sum_{i-1} sumi?+sumi?1? 的桶中统计,由于必定有解,因此查找时直接在对应桶中二分查找 [ l , r ] [l,r] [l,r] 区间内的 i i i 即可。 注意 s u m i + s u m i ? 1 sum_i+sum_{i-1} sumi?+sumi?1? 可能为负,因此需要加偏移量 B = 2 n B=2n B=2n 。 参考代码
E. Rescue Niwen!题目大意TBD 题解参考代码
F. Tubular Bells题目大意TBD 题解参考代码
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:54:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |