专栏/Codeforces Round #706 个人题解

Codeforces Round #706 个人题解

2021-03-11 01:00--阅读 · --喜欢 · --评论
粉丝:1.7万文章:39

比赛链接:https://codeforces.com/contest/1495  https://codeforces.com/contest/1496

官方题解:https://codeforces.com/blog/entry/88533

难度:Div1&2

赛中过题情况

Div2A Split it!

题意:给定一个长度为 n 字符串 sk,问这个字符串能否划分为 s%3Da_1%2Ba_2%2B%5Cdots%2Ba_k%2Ba_%7Bk%2B1%7D%2BR(a_k)%2BR(a_%7Bk%E2%88%921%7D)%2B%E2%80%A6%2BR(a_1) 的形式,其中 R(x) 表示将串 x 反转得到的字符串。

题解:易得 a_1%2Ba_2%2B%5Cdots%2Ba_kR(a_k)%2BR(a_%7Bk%E2%88%921%7D)%2B%E2%80%A6%2BR(a_1) 是互为反转的串,中间需要插入一个 a_%7Bk%2B1%7D。找到 s 中最长互为反转的前后缀长度,然后与 k 作比较即可。注意特判 a_%7Bk%2B1%7D 为空串的情况,时间复杂度 O(n)

Div2B Max and Mex

题意:定义 %5Cmax(S) 为集合 S 中的最大值,%5Ctext%7Bmex%7D(S) 为集合 S 中未出现的最小非负整数。给定 S 的初始情况,然后执行 k 次将 %5Clceil%5Cfrac%7B%5Cmax(S)%2B%5Ctext%7Bmex%7D(S)%7D%7B2%7D%5Crceil 插入 S 中的操作,求 S 中最后有多少个互不相同的数。

题解:初始时若 %5Cmax(S)%3C%5Ctext%7Bmex%7D(S),此时必有 S%3D%5C%7B0%2C1%2C2%2C...%2Cn-1%5C%7D%5Cmax(S)%3Dn-1%5Ctext%7Bmex%7D(S)%3Dn%5Clceil%5Cfrac%7B%5Cmax(S)%2B%5Ctext%7Bmex%7D(S)%7D%7B2%7D%5Crceil%3Dn,则每次执行插入操作都会将 %5Ctext%7Bmex%7D(S) 插入,最终 S 中会增加 k 个数。初始时若 %5Cmax(S)%3E%5Ctext%7Bmex%7D(S),则必有 %5Ctext%7Bmex%7D(S)%3C%5Clceil%5Cfrac%7B%5Cmax(S)%2B%5Ctext%7Bmex%7D(S)%7D%7B2%7D%5Crceil%5Cle%5Cmax(S),此时插入操作并不会改变 %5Ctext%7Bmex%7D(S)%5Cmax(S),因此最终 S 中最多增加 1 个数。我的代码中使用了 set 求 %5Ctext%7Bmex%7D(S),时间复杂度 O(n%5Clog%20n),如果使用哈希表,则复杂度可降为 O(n)

Div2C/Div1A Diamond Miner

题意:x 轴上有 n 个点,y 轴上有 n 个点,将 x 轴上的点一一对应地向 y 轴上的点连线,求连出的线段长度总和最小是多少。

题解:贪心,每次将 x 轴上离原点最近的点与 y 轴上离原点最近的点相连即可,证明建议看官方题解。时间复杂度 O(n%5Clog%20n)

Div2D/Div1B Let's Go Hiking

题意:有 n 个格子排成一排,每个格子有一个高度,高度各不相同。甲首先选择一个起点,然后乙再选择一个起点,然后甲乙两人轮流移动。每次可以往左或往右移动一格,甲只能往比当前位置低的格子移动,乙只能往比当前位置高的格子移动。轮到某人时如果他不能移动,则对方获胜。若两人都采取最优策略,问甲要获胜的话有多少种起点选择方案。

题解:首先可以知道,甲的起点必须选在可以往左右两边走的位置,即“山顶”。因为如果甲的起点只能往一个方向上走,那么乙在那个方向上更低一格堵住甲即可获胜。

当甲选择某个山顶作为起点后,乙的选择可以有以下两种情况:

  • 乙从某个“山脚”出发,往甲不在的“山顶”移动。此时甲乙两人的路线互不影响,找到乙能走的最长路线和甲能走的最长路线对比即可。


  • 乙从甲附近的“山坡”出发,往甲所处的“山顶”移动。此时乙所选的位置与甲的距离不能为偶数,否则甲就可以往乙的方向上走从而堵住乙。当乙按正确策略选择起点后,甲不能往乙的方向上走,否则会被乙堵住。两者路线确定后比较长度即可。


对于每个山顶,判断甲以该山顶为起点时,乙能否有策略战胜甲,若没有则甲可获胜,更新答案。时间复杂度 O(n)。(补充:事实上,如果甲想要获胜,那么他的起点必须选在下山路径最长的“山顶”上,因此答案只有 01。)

Div2E/Div1C Garden of the Sun

题意:给定一个花园,表示为 n 行 m 列的矩阵。花园内有的位置种了花,有的位置为空地,初始时每个空地周围的八个格子不会有别的空地。现需要挖出更多空地,使得原本为空地的位置互相连通,且最终空地不会形成环路。构造一组满足条件的方案。

题解:每隔两行将一整行都变成空地,行与行之间找合适的位置相连,注意边界位置的处理。

后面的题目暂未解决。

投诉或建议
推荐文章
更多精彩内容
代数学基本定理?——2023上海春季高考21题解析
前言:up主抑郁症复发,病情严重,只能休学在家(嘤嘤嘤)。为了避免自己无聊就开始研究数学(其实是在准备复读)。在趁打折购买了《金考卷特快专递第6期(新高考)》之后,发现上面的2023上海春季高考21题非常有意思,自己也想出了一种比较奇特的解法。现就这种解法分享如下。防杠精,放个病历的图题目和手稿:题目的情景非常新颖,第一次见到容易把握不住分析:材料中给出了两个函数f(x)和g(x),并定义了“控制函数”的概念,即若f(x)≤g(x),则g(x)为f(x)的“控制函数”,还定义了一个“最小值函数”f⁻(x)
Stable Diffusion 快问快答
Stable Diffusion V201、Stable Diffusion 是什么?是一款开源免费的AI绘画工具,可以文生图,也可以图生图。02、Stable Diffusion 的同类产品还有哪些?同类产品只关注 Midjourney、DALL-E2 就好了,其他的要么没开放,要么效果一般,要么基于SD二次开发。03、想要简单的试用一下 Stable Diffusion那可以先不在本地安装,试下在线版本:https://beta.dreamstudio.ai/generate?from=%2Fdrea
Strongart教授:好且仅好的好且仅好
最近Strongart教授想到了一个好玩的词“好且仅好”,灵感来自于数学中的“有且仅有”和“当且仅当”,意思是稍微好一点,但也好不到哪里去,大概就是半斤七两吧。 若是小学老师看到这个词,多半会把它圈出来,说它用得不够准确,小学生不要随便造词。但若是大学老师看到它,恐怕就会赞叹一句:好且仅好用得好啊!至于中学老师,也许会打个问号:我觉得用得还可以,但正式考试别这么写,其他老师可能会有不同的看法。若是我的文本有幸成了经典原著,估计就会有人出来考证,这个“好且仅好”到底参照的哪一版教材,其实我自己都记不得了哈~
评论