A

非常容易观察到性质,注意 Alice 为先手,发现当 \(a_{\max}\) 的个数为奇数时显然能 win,但如果 \(a_{\max}\) 的个数为偶数且有一个数具有奇数个可以作为跳板,那么也能 win,否则就 lose。

B

结论:\(presum_x \geq 2 + presum_{y - 1} \geq 2 + \min{presum_i} \geq 1 + \max{presum_i}\),后缀和同理。

C

模拟一下容易发现每次操作后整个数组都会向后移动。

我们首先对数组进行一次操作模拟,发现整个数组就变成单调不降的了。

之后我们开始观察,对于一个连续的序列 \(a[l, r] = x (l \lt r, x \gt 0)\),在一次运算之后,得到一个新的限制 \(a[l + 1, \min{(r + 1, n)}] = x\) 成立,然后再给结论:如果数组中所有非零连续段(出去最后一段)的长度都大于 \(1\),那么数组就遵循一个 “右移” 定律。

对于 “右移” 数组,不难得到 \(b_i \lt b_{i + 1} \lt b_{i + 2}\),可以推断出 \(b_i = a_i, b_{i + 1} = a_{i + 1}\),并且至少有 \(a_j = a_{i + 1}(j \leq i)\) 成立,这也就说明 \(a\) 并不是非单调递减的,也就是说经过 \(2\) 次运算总能得到一个 “右移” 数组。

D

考虑贪心,对于 \(a_i\) 足够大的情况,我们一定会在 \(i\)-th 行上使用操作 \(2\),具体的 \(i\) 是多少呢?

对于 \(a_i \geq 5\) 的情况直接使用操作 \(2\) 即可,因为至少需要 \(3\) 个 \(2 \times 2\) 的网格来覆盖,而在 \(i - 1, i, i + 1\) 行进行三次 \(2\) 操作带来的收益显然更大。

然后讨论一下 \(a_i \lt 5\) 的情况,考虑从左到右:

  • 没有黑色格子
  • 有 \(\leq 2\) 个黑色格子,放入一个 \(2 \times 2\) 的子网格
  • 有 \(\gt 2\) 个黑色格子,直接进行一次 \(2\) 操作即可

总结一下,对于 \(i\)-th 行,对于当前行来说 \(i - 1\)-th 的影响只有:

  • 不受影响
  • 第 \(3\) 列和第 \(4\) 列的单元格被涂成白色
  • 第 \(1\) 列和第 \(2\) 列的单元格被涂成白色

E

交互题。

当我们查询子树的时候,如果返回 \(0\),那么删除整棵子树。注意到我们可以查询任意叶子节点,那么如果返回了 \(1\) 就直接跳出,否则鼹鼠就要往父节点跑,再考虑如果查询子树时返回了 \(1\),那么就再查询将其驱逐出当前的子树跳往父亲。

朴素的做法处理起来太麻烦,而且 Easy & Hard 还需要做优化,官方的题解给的做法太麻烦了,给一个更优的解法:

查询任意的叶子节点 \(70\) 次(均摊),然后删除 \(dep_{\max} - dep_v + 1 \leq 70\),那么树就被拆分成了 \(\leq 70\) 条链,check 一遍跑过去就可以了,这样跑得飞快。

F

无端联想 % 你赛的最大 \(C_{\triangle}\),主席树挂大分……

非常明显需要使用线段树维护,明确我们需要做什么.

注意到对于一份 “局部” 的最大多边形线段 \([l, r]\) 必须满足 \(\min{a_{l - 1}, a_{r + 1}} \geq 2 \cdot (a_l + \dots + a_r)\),当然包括 \(l = 1, r = n\) 的情况。

当且仅当 \(\sum_{i = 1}^{r} a_i \leq 2 \cdot a_i\) 时,定义区间 \([l, r]\) 的后缀 \([i, r]\) 为 special,同样的前缀也定义为 special。

观察性质,最多有 \(O(\log{(\max a)})\) 个 special 后缀,因为从定义中不难得到一个 special 之和至少是前一个 special 之和的 \(2\) 倍,因此我们可以合并左边区间的 special 后缀和右边区间的 special 前缀,这部分可以使用 two-pointers 来完成,然后就可以获取到一个跨越区间的答案了。

Codeforces Round 960 (Div.2)的更多相关文章

  1. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  2. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  3. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  4. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  5. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  6. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  7. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  8. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

  9. Codeforces Round #268 (Div. 2) ABCD

    CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...

  10. 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts

    题目传送门 /* 贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, ...

随机推荐

  1. SNERT内部集训-WEB

    SNERT内部集训-WEB Day1-2 文件上传 靶场搭建 docker安装,docker pull c0ny1/upload-labs,docker run -it -d -p 8080:80 a ...

  2. Azure 入门系列 (第三篇 Publish Web Application to VM)

    本系列 这个系列会介绍从 0 到 1 搭建一个 Web Application 的 Server. 间中还会带上一些真实开发常用的功能. 一共 6 篇 1. Virtual Machine (VM) ...

  3. 应聘软件测试 HR 会问到哪些问题?收藏这一篇就够了!

    1.你还有收到其他offer吗? 其实hr问你offer情况,是对你感兴趣,想要进一步了解你,看下你的市场竞争力. 但注意不要太坦诚的说:我还没有offer或者收到两个offer还想对比对比:也不要撒 ...

  4. MyBatis——注解开发

    注解开发完成增删改   * (在完成简单功能时)使用注解开发会比配置文件开发更加方便 查询:@Select 添加:@Insert 修改:@Update 删除:@Delete               ...

  5. 更新iManager离线镜像包方法

    例如将iserver_gisapplication_mapping_10_1_0.tar镜像更新到iManager仓库中 步骤一.将镜像导入本地镜像仓库 docker load -i iserver_ ...

  6. Autodesk 3d Max2020 初始化闪退

    事件起因:给同事安装完 Autodesk 3d Max2020 版本之后,软件初始化就闪退,后来在网上查了资料后解决. 解决办法如下:services.msc --> Autodesk 开头的服 ...

  7. js中判断数据类型的方法有哪些

    判断数据类型可以使用 typeof 但是typeof 判断数组和函数时返回的都是Object 不能具体判断,这时使用 instanceof 可以判断对象是否是另一个函数创造的 : 用法: typeof ...

  8. Litmus 实践:让群魔在混沌中乱舞,看 K8s 能撑到何时

    对于云服务而言,如果系统出现异常,将会带来很大的损失.为了最大程度地降低损失,我们只能不断探寻系统何时会出现异常,甚至缩小到某些特定参数变化是否会造成系统异常.然而随着云原生的发展,不断推进着微服务的 ...

  9. KubeSphere Cloud 月刊|灾备支持 K8s 1.22+,轻量集群支持安装灾备和巡检组件

    功能升级 备份容灾服务支持 K8s v1.22+ 版本集群 随着 Kubernetes 近一年频繁的发版.升级,越来越多的用户开始部署并使用高版本的 Kubernetes 集群.备份容灾服务支持 Ku ...

  10. Vue 实现 PDF 导出功能

    旨在通过 html2canvas 和 jspdf,先将页面的 html 转成 canvas,再将 canvas 转成 pdf,同时解决了分页截断的问题. 安装依赖 yarn add html2canv ...