A

均移到黑色或白色即可。

时间复杂度 \(O\left(n\log n\right)\)。

B

枚举每种开关判断是否有灯只能靠该种开关控制。

时间复杂度 \(O\left(nm\right)\)。

C

最短的木板必然作为某一个木桶的容积,所以我们可以根据 \(l\) 找出可能作为容积的最长的木板。

若可能作为容积的木板总数不足木桶总数就无解。

然后优先将长的作为容积的木板和不可能作为容积的木板配掉,这个比较显然。

最后如果不可能作为容积的木板不足了就继续贪心配一下,每次在剩下的所有木板中取最长或最短的 \(k\) 个,这个更显然了。

时间复杂度 \(O\left(nk\right)\)。

D

首先发现起始高度尽可能大一定是对的,反正可以放相同的高度进行调整

举个栗子,绿色代表原有的堆,红色代表新增的堆:

\(\color{green}{\texttt{1 2 3 4 3 2 1}}\\\color{green}{\texttt{2 3 4 3 2 1}}\color{red}{\texttt{ 1}}\\\color{green}{\texttt{3 4 3}}\color{red}{\texttt{ 3 }}\color{green}{\texttt{2 1}}\\\color{green}{\texttt{4 3 3}}\color{red}{\texttt{ 3}}\color{green}{\texttt{ 2 1}}\\\color{red}{\texttt{5 }}\color{green}{\texttt{4 3 2 1}}\color{red}{\texttt{ 1}}\)

先判掉最大高度(这里也是起始高度)\(top\) 小于 \(h\) 的情况,此时必定为一个不升序列,且必定为一个下降序列插入至多一堆

接下来的情况起始高度必定为 \(h\),此时先是一个不降序列,然后是一个不升序列。同样地,最大高度 \(top\) 越大越好。

可以先把不升序列中 \(1\sim h-1\) 这一段的贡献减掉,即 \(n\gets n-\frac{h\left(h-1\right)}{2}\)。

\[\left(h+top\right)\left(top-h+1\right)-top\leq n
\]
\[top^2-h^2+h\leq n
\]
\[top^2\leq n+h^2-h
\]
\[top=\left\lfloor\sqrt{n+h^2-h}\right\rfloor
\]

接下来要处理多出来的沙袋。注意,最坏情况可能要插入最多两堆,举个栗子:

x x+1 x
x x+1 x+1 x
x x+1 x+1 x+1 x

三堆及以上最大高度可以达到 \(x+2\),具体可以手玩一下。

时间复杂度 \(O\left(1\right)\)。

E

简单 dp。

令 \(f_i\) 表示前 \(i\) 个数是否有满足条件的分组方案,转移的时候枚举当前组的开头即可,但直接这么做是 \(O\left(n^2\right)\) 的。

发现合法的第一个转移点单调不降,而我们又只关心是否,所以可以用一个普通队列来维护,时间复杂度 \(O\left(n\right)\)。

F

对于每个字母,如果前一个区间中它的哈希值和后一个区间中某个字母的哈希值一样,则这两个区间是匹配的。

至于区间 \(l\sim r\) 的哈希值,它等于 \(r\) 的哈希值减去 \(l-1\) 的哈希值与基数的 \(r-l+1\) 次幂的积,就和你某个进制的数取后面一段是一样的。

时间复杂度 \(O\left(n+m\right)\)。

G

鸽了。

Contest 985的更多相关文章

  1. Codeforce Div-2 985 C. Liebig's Barrels

    http://codeforces.com/contest/985/problem/C C. Liebig's Barrels time limit per test 2 seconds memory ...

  2. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...

  3. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...

  4. B. Switches and Lamps

    链接 [https://codeforces.com/contest/985/problem/B] 题意 给你n,m,分别是n个开关,m个灯 给一个n*m的字符矩阵aij=1,表示i可以控制j这个灯 ...

  5. A. Chess Placing

    链接 [https://codeforces.com/contest/985/problem/A] 题意 给你一个偶数n,输入n/2个数,代表棋子的位置,有一个1*n的棋盘是黑白相间的 问你使得所有棋 ...

  6. Educational Codeforces Round 44 (Rated for Div. 2)

    题目链接:https://codeforces.com/contest/985 ’A.Chess Placing 题意:给了一维的一个棋盘,共有n(n必为偶数)个格子.棋盘上是黑白相间的.现在棋盘上有 ...

  7. CF练习记录

    2018/5/6 Codeforces Round #478 (Div. 2) C http://codeforces.com/contest/975/problem/C Valhalla Siege ...

  8. 栈 && 教授的测试

    卡特兰数:https://blog.csdn.net/wu_tongtong/article/details/78161211 https://www.luogu.org/problemnew/sho ...

  9. Contest - 多校训练(985专场) Problem C: 985的方格难题

    题目链接:http://acm.zzuli.edu.cn/zzuliacm/problem.php?cid=1157&pid=2 Description 985走入了一个n * n的方格地图, ...

随机推荐

  1. dubbo-高可用-负载均衡配置

    在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用. 负载均衡策略 1.Random LoadBalance随机,按权重设置随机概率.在一个截面上碰撞的概率高,但调用量越 ...

  2. Go module 本地导包方式

    tip本文只讲关于Go module 本地导包方式,其他请自行查阅 Go module 导包方式,go mod init project-name,会得到一个go.mod文件,此文件是管理依赖的,通常 ...

  3. ORB-SLAM3 Initializer.cpp函数解读

    作者: Liam 点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 构造函数 Initializer::Initializer(const Frame ...

  4. 使用 Dockerfile 文件但是不使用缓存生成镜像

    前一段时候使用 Dockerfile 重新部署 NetCore3.1 项目的时候很顺利,由来由于一些原因,我把以前的镜像删除,如果我们大家继续使用 docker  build 命令去生成镜像的话就会报 ...

  5. Jmeter 函数助手对话框简单使用

    第一步 打开Jmeter,Tools > 函数助手对话框  下拉框选择_CSVRead ,如下图所示: 第二步: 准备一份测试数据,保存在本地盘符里,数据如下图所示: 第三步,填数据,  (1) ...

  6. 关于Linux操作系统的文件管理与常用命令

    1.显示文件内容命令:cat     more    less      head     tail cat命令 : cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的 ...

  7. yython爬虫基础知识入门

    Python爬虫 关注公众号"轻松学编程"了解更多. 大纲: 1.获取响应 urllib(python3)/urllib2-urllib(python2) requests(url ...

  8. Miller-Rabin 素数检验算法

    算法简介 Miller-Rabin算法,这是一个很高效的判断质数的方法,可以在用\(O(logn)\) 的复杂度快速判断一个数是否是质数.它运用了费马小定理和二次探测定理这两个筛质数效率极高的方法. ...

  9. 2.1获取Git仓库-2.2记录每次更新到仓库

    2.1 获取 Git 仓库 获取 Git 仓库通常有两种方式 将尚未进行版本控制的本地目录转换为 Git 仓库: 从其它服务器 克隆 一个已存在的 Git 仓库. 在已存在目录中初始化仓库 首先进入该 ...

  10. Linux的内部命令和外部命令

    为了提高系统运行效率,将经常使用的轻量的命令在系统启动时一并加载这些命令到内存中供shell随时调用,这部分命令即为内部命令.反之,只有当被调用时才会被硬盘加载的这部分命令即为外部命令. 内部命令实际 ...