Codeforces Round #669 (Div. 2)/Codeforces1407 ABCD
A. Ahahahahahahahaha
通过作者半个小时的观察:全零和全一必定有一个是符合要求的答案,因为0的个数和1的个数至少有一个大于等于\(\frac{n}{2}\)。
B. Big Vova
贪心。
将剩余可用的数字用一个集合装起来,然后从小到大枚举下标\(i\),每次枚举可用的数字,保存使前缀GCD最大的那个数字,这个数字就是\(b_i\)。
C. Chocolate Bunny
通过观察可得:一次? i j和一次? j i可以确定\(p_i\)和\(p_j\)中的较小值及其下标。
证明:假设\(p_i > p_j\),那么\(p_i \% p_j < p_j\),\(p_j \% p_i = p_j\),所以两个返回值中较大的就是\(p_i\)和\(p_j\)中较小的那一个,即\(p_j\),并且可以知道较小值的下标为\(j\),同时较大值的下标也确定了为\(i\)。反之同理。
然后就可以记录较大值的下标\(p\),初始值为\(1\),然后从下标为\(2\)的位置开始遍历数组,每次用两个操作确定一个位置上的值,更新较大值的下表。
这样,用\(2(n-1)\)次操作可以确定\(1\)至\(n-1\)的位置,且此时较大值的下标就是\(n\)的下标。
D. Discrete Centrifugal Jumps
单调栈优化DP。
现在有一个单调栈\(up\),栈中元素单调上升,然后有一个序列\(h\),遍历这个序列,不断尝试将当前元素加入单调栈。
现在要新加进来一个元素:
- 若元素的值大于栈顶对应元素,则直接加入。
- 反之,就将栈顶出栈,重复直到元素的值大于栈顶对应元素。
可以发现,将栈顶出栈后,若栈顶元素大于当前枚举到的元素,则新的栈顶元素到当前枚举到的元素之间的所有元素都大于两者,即新的栈顶对应元素到当前枚举到的元素的跳跃是一个满足条件3的跳跃。
同理可以维护一个栈中元素单调下降的单调栈\(down\)。
然后\(dp_i\)就只可能从\(dp_{i-1}\)转移的来,或者是从\(up\)中的元素转移得来,或者是从\(down\)中的元素转移得来。
Codeforces Round #669 (Div. 2)/Codeforces1407 ABCD的更多相关文章
- Codeforces Round #669 (Div. 2)A-C题解
A. Ahahahahahahahaha 题目:http://codeforces.com/contest/1407/problem/A 题解:最多进行n/2的操作次数,我们统计这n个数中1的个数,是 ...
- Codeforces Round #682 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1438 A. Specific Tastes of Andre 题意 构造一个任意连续子数组元素之和为子数组长度倍数的数组. ...
- Codeforces Round #678 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1436 A. Reorder 题解 模拟一下这个二重循环发现每个位置数最终都只加了一次. 代码 #include <bi ...
- Codeforces Round #676 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1421 A. XORwice 题意 给出两个正整数 \(a.b\),计算 \((a \oplus x) + (b \oplus ...
- Codeforces Round #675 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1422 A. Fence 题意 给出三条边 $a,b,c$,构造第四条边使得四者可以围成一个四边形. 题解 $d = max( ...
- Codeforces Round #668 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1405 A. Permutation Forgery 题意 给出一个大小为 $n$ 的排列 $p$,定义 \begin{equ ...
- Codeforces Round #732 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1546 A. AquaMoon and Two Arrays 题意 给出两个大小为 \(n\) 的数组 \(a, b\) ,每 ...
- 【解题报告】Codeforces Round #301 (Div. 2) 之ABCD
A. Combination Lock 拨密码..最少次数..密码最多有1000位. 用字符串存起来,然后每位大的减小的和小的+10减大的,再取较小值加起来就可以了... #include<st ...
- Codeforces Round #453 ( Div. 2) Editorial ABCD
A. Visiting a Friend time limit per test 1 second memory limit per test 256 megabytes input standard ...
随机推荐
- 19、State 状态模式
“人有悲欢离合,月有阴晴圆缺”,包括人在内,很多事物都具有多种状态,而且在不同状态下会具有不同的行为,这些状态在特定条件下还将发生相互转换.就像水,它可以凝固成冰,也可以受热蒸发后变成水蒸汽,水可以流 ...
- gym102586 部分题解
目录 Evacuation Sum Modulo Count Modulo 2 Robots Construct Points Amidakuji Yosupo's Algorithm link 出于 ...
- Java基础—面向对象特性
1.三大特性 ①.封装 所谓封装,就是将客观事物封装成抽象的类,类的数据和方法只允许可信的类或者对象操作,对不可信的类或对象进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性.简单的说, ...
- springboot配置字符编码
这边主要有两种方式 方式一.使用传统的Spring提供的字符编码过滤器(Filter的方式) 因为,字符编码过滤器在框架中已经有了,所以我们不需要自己写了.直接进行配置类的实现: @Configura ...
- 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
说起嵩山,我就想起乔峰,想起慕容复,以及他们两位老爹在少林寺大战的场景.当然了,最令我印象深刻的就是那位默默无闻,却一鸣惊人的扫地僧啊.这次,阿里出品的嵩山版 Java 开发手册的封面就有一个扫地僧, ...
- MySQL数据库——数据约束
1 什么数据约束 对用户操作表的数据进行约束 2 默认值(缺省约束) 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的 2)对默认值字段可以 ...
- C#LeetCode刷题之#7-反转整数(Reverse Integer)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3838 访问. 给定一个 32 位有符号整数,将整数中的数字进行反 ...
- golang 的 string包
前言 不做文字搬运工,多做思路整理 就是为了能速览标准库,只整理我自己看过的...... 注意!!!!!!!!!! 单词都是连着的,我是为了看着方便.理解方便才分开的 1.string 中文文档 [英 ...
- 在虚拟机中安装Mysql
目录 下载Mysql 安装 配置mysql允许远程访问 下载Mysql 下载地址:http://dev.mysql.com/downloads/mysql 我这里下载的是安装版本 安装 配置mysql ...
- 虚拟机安装mysql遇到的坑
相信很多同学也跟我一样在家里,windows安装个虚拟机,再安装linux.然后在linux下模拟出一套运行环境.这次我装的是mysql 8.0.中间遇到很多坑,记录一下.(用的linux为redha ...