santisify Site

Back

Codeforces Round 913 Div3Blur image

A Rook#

题目大意#

给一个国际象棋棋盘,有t次询问,每次询问给定一个棋子坐标s 例如 d4.

问: 输出这个棋子上下左右四个方向的坐标

解题思路#

两个for循环暴力求解

代码#

B YetnotherrokenKeoard#

题目大意#

t次询问,每次询问会给定一个字符串s, 我们要敲击键盘拼接出这个字符串,但是存在一些规则:

  1. 每次敲击b就会将位于这个b左边存在小写字母,那么就将距离b最近的一个删除,
  2. 同理,当敲击大写字母时,就会删除这个B左边最近的一个大写字母.

问: 最后会组成一个怎样的字符串.

解题思路#

这个题由于数据量比较大,就不要尝试双重循环去删除字符了 我们可以发现一个规律,我们只删除当前字符前大小写形式相同的字符,并且只能删除一次,而且 是删除距离最近的, 这就有点像堆栈(后进先出),那我们就可以用栈来模拟这个过程 我们可以给每个字符做个标记,即创建一个和字符串大小相同的bool数组 若为bB或被删除的字符标记为false,否则为true

代码#

C Removal of Unattractive Pairs#

题目描述#

t次询问,每次询问给出一个长度为n的字符串,字符串两个字符不同则可以删除这两个字符 问: 字符串最短有多长.

解题思路#

用手玩玩就ok

代码#

D Jumping Through Segments#

题目描述#

t次询问,每次询问会给nL, R,其中第 i 段从坐标为L[i]的点开始,到坐标为R[i]的点结束。 玩家从坐标为 0 的点开始通关。在一次移动中,他们可以移动到距离不超过 k 的任意一点。 在第i次移动后,玩家必须落在第i段之内,即在坐标x处,使得 L[i]≤x≤R[i]。 这意味着,每次移动都必须在L[i] ~ R[i] 如果玩家按照上述规则到达了第 n个段落,那么这一关就算完成了。 为了不希望这个关卡太简单,所以要求确定可以完成这个关卡的最小整数k

解题思路#

核心思想就是二分答案.

代码#

Codeforces Round 913 Div3
https://santisify.top/blog/old/cf1907
Author santisify
Published at August 7, 2024
Comment seems to stuck. Try to refresh?✨