CF1883翻译(精校版)

比赛链接:CF1883

1|0A.Morning

1|1题目描述

你需要输入 t四位数密码,每次输入时你的光标都在第一个数 1 上,在一秒内你有两种操作:

  • 按下光标输入一位密码。
  • 将光标移到任意与当前数字相邻的数字。

这张图显示了你输入密码的设备,可以看到,5 相邻的是 46,而 01 只有一个相邻的数,分别是 92

计算输入给定密码需要的最少秒数。

ps.如果还是不理解题意,请看加粗的样例解释。

1|2输入格式

第一行包含一个整数 t ( 1t104 ) - 测试用例的编号。

每个测试用例的单行描述了长度为 4 的针脚代码字符串,由 09 的数字组成。

1|3输出格式

针对每个测试用例,输出一行,表示输入密码所需的最少秒数。

1|0样例输入1

10 1111 1236 1010 1920 9273 0000 7492 8543 0294 8361

1|0样例输出1

4 9 31 27 28 13 25 16 33 24

1|0样例解释

在第一个测试案例中,光标需要按下 4 次。

在第二个测试案例中,可以在 9 秒内完成,如下所示:

  • 按下光标,输入数字1
  • 将光标移至数字 2
  • 按下光标,输入数字2
  • 将光标移至数字 3
  • 按下光标,输入数字3
  • 将光标移至数字 4
  • 将光标移至数字 5
  • 将光标移至数字 6
  • 按下光标,输入数字6

2|0B.Chemistry

2|1题面描述

给定一个字符串 S,它的长度为 n,请问能否在删除 k 个字符后,对字符串重新排列(任意排列)使得其成为回文字符串?

ps.如果还是不理解题意,请看加粗的样例解释。

2|2输入格式

每个测试由多个测试用例组成。第一行包含一个整数 t ( 1t104 ) - 测试用例的编号。随后是测试用例说明。

每个测试用例的第一行包含两个整数 nk ( 0k<n105 ) - 字符串长度 s 和要删除的字符数。

每个测试用例的第二行包含一个长度为 n 的字符串 s ,由小写字母组成。

保证所有测试用例的 n 总和不超过 2×105

2|3输出格式

对于每个测试用例,如果可以从字符串 s 中删除 k 个字符,从而使剩余的字符可以排列形成一个回文字符串,则输出YES,否则输出NO

2|4样例输入

14 1 0 a 2 0 ab 2 1 ba 3 1 abb 3 2 abc 6 2 bacacd 6 2 fagbza 6 2 zwaafa 7 2 taagaak 14 3 ttrraakkttoorr 5 3 debdb 5 4 ecadc 5 3 debca 5 3 abaac

2|5样例输出

YES NO YES YES YES YES NO NO YES YES YES YES NO YES

2|6样例解释

在第一个测试案例中,不能进行删除,字符串a本身就是一个回文。

在第二个测试案例中,不能进行删除,但字符串ab不是回文。

在第三个测试案例中,可以删除1个字符,不管删除b还是a,得到的字符串都是一个回文字符串。

在第四个测试案例中,可以删除一个出现过的字符 a,得到字符串bb,这是一个回文字符串。

在第六个测试案例中,可以去掉一个出现过的字符bd,得到字符串acac,然后将其重新排列为字符串 acca

在第九个测试案例中,可以去掉一个出现过的字符tk,得到字符串aagaa,这是一个回文字符串。

3|0C.Raspberries

1|0题面描述

有一个长度为 n 的数组 a 和一个整数 k( 2k5 ),你每次操作可以对数组内的任意一个数加 1

如果要使得 i=1nai (累乘:数组中所有数字的乘积)能被 k 整除,最小操作步数是多少?

1|0输入格式

第一行包含一个整数 t ( 1t104 ) - 测试用例的数量。

每个测试用例的第一行包含两个整数 nk2n1052k5 )-数组的大小 a 和数字 k

每个测试用例的第二行包含 n 个整数 a1,a2,,an1ai10 )。

保证所有测试用例中 n 的总和不超过 2×105

1|0输出格式

针对每个测试用例,输出满足条件的最少操作步数。

1|0样例输入

15 2 5 7 3 3 3 7 4 1 5 2 9 7 7 3 9 5 5 5 4 1 2 3 7 4 9 5 1 5 9 5 1 3 4 6 3 6 3 4 6 1 5 3 4 1 5 9 4 4 1 4 1 1 3 4 3 5 3 4 5 8 9 9 3 2 5 1 6 2 5 10 10 4 5 1 6 1 1 2 5 7 7

1|0样例输出

2 2 1 0 2 0 1 2 0 1 1 4 0 4 3

1|0样例解释

在第一个测试案例中,我们需要选择两次第二个数字,数组将为 [7,5] 。数组中所有数字的乘积为 35,可以被 5 整除 。

在第四个测试用例中,数组中所有数字的乘积为 120 ,已经可以被 5 整除,因此不需要进行任何操作。

在第八个测试用例中,我们可以对第二个数和第三个数各进行1次操作,数组将是 [1,6,10] 。数组中各数的乘积为 60 ,可以被4整除。

4|0D.In Love

1|0题面描述

你有 q 次操作,每次操作分为两种:

  1. + l r,表示添加一条区间范围为 [l,r] 的线段。

  2. l r,表示删除一条区间范围为 [l,r] 的线段。

问每次操作后是否存在两条线段,使得它们的区间范围没有交集。

ps.建议对着样例画图理解。

1|0输入格式

第一行都包含一个整数 q ( 1q105 ) - 操作次数。

接下来的 q 行描述两种类型的运算。 ( 1lr109 ).

1|0输出格式

每次操作后,如果存在两条不相交的线段,则打印YES,否则打印NO

1|0样例输入

12 + 1 2 + 3 4 + 2 3 + 2 2 + 3 4 - 3 4 - 3 4 - 1 2 + 3 4 - 2 2 - 2 3 - 3 4

1|0样例输出

NO YES YES YES YES YES NO NO YES NO NO NO

5|0E.Look Back

1|0题面描述

给定长度为 n 的序列 a,你可以进行以下操作:选取一个 i 满足 1in,使 ai 变为原来的 2 倍。

求最少需要几次操作使得 a 为一个不递减的序列。

1|0输入格式

第一行包含一个整数 t ( 1t104 ) - 测试用例的数量。

每个测试用例的第一行包含一个整数 n ( 1n105 ) - 数组的大小 a

每个测试用例的第二行包含 n 个整数 a1,a2,,an ( 1ai109 )。

保证所有测试用例的 n 之和不超过 2×105

1|0输出格式

针对每个测试用例,输出使数组不递减所需的最少操作数。

1|0样例输入

9 1 1 2 2 1 3 3 2 1 4 7 1 5 3 5 11 2 15 7 10 6 1 8 2 16 8 16 2 624323799 708290323 12 2 1 1 3 3 11 12 22 45 777 777 1500 12 12 11 10 9 8 7 6 5 4 3 2 1

1|0样例输出

0 1 3 6 10 3 0 2 66

1|0样例解释

在第一个测试用例无需进行任何操作。

在第二个测试用例中,我们需要选择 i=2 ,之后数组将是 [2,2]

在第三个测试用例中,我们可以进行以下操作:

  • 选择 i=3 ,然后数组将变为 [3,2,2]
  • 选择 i=3 ,之后数组将变为 [3,2,4]
  • 选择 i=2 ,之后数组为 [3,4,4]

6|0F.You Are So Beautiful

1|0题目描述

给定数列 a,定义一个子数组 S 是合法的:从 a有且仅有一种选法能选出子数组S(选法相同定义为最终选出的位置集合相同),求其有多少非空合法子序列。

ps.如何不理解,清看加黑的样例解释。

1|0输入格式

第一行包含一个整数 t ( 1t104 ) - 测试用例的数量。

每个测试用例的第一行包含一个整数 n ( 1n105 ) - 数组的大小 a

每个测试用例的第二行包含 n 个整数 a1,a2,,an ( 1ai109 )。

保证所有测试用例的 n 之和不超过 2×105

1|0输出格式

对于每个测试用例,输出合法的子数组的数量。

1|0样例输入 #1

6 1 1 2 1 1 3 1 2 1 4 2 3 2 1 5 4 5 4 5 4 10 1 7 7 2 3 4 3 2 1 100

1|0样例输出 #1

1 1 4 7 4 28

1|0提示

在第一个测试案例中,子数组1是合法的。

在第二个测试案例中,子数组1 1是合法的,因为仅有一种选法选出1 1。子数组1是不合法的,因为选第一个和选第二个都能选出子数组1

在第三个测试案例中,子数组1 22 11 2 12是合法的,因为他们都仅有一种选法。

7|0G1. Dances (Easy version)

1|0题目描述

这是问题的简单版本,与下个题唯一不同的是,在这个版本中m=1,而且不需要用到m。

给定两个长度为 n 的序列 a,b,其中 a1=1a2anb1bn 由输入得到。你可以对两个数组任意排序,你需要在两个序列中分别删除 k 个数,即剩下 nk 个数,使得对于任意的 i(1ink),都有ai<bi

求最少删除数k是多少?

1|0输入格式

第一行包含一个整数 t ( 1t104 ) - 输入数据集的数量。

每个测试用例的第一行包含两个整数 nm ( 2n105 , m=1 ) - 数组的大小和整数m简单版本的题用不到m)。

每个测试用例的第二行包含 n1 个整数 a2,,an ( 1ai109 )。

每个测试用例的第三行包含 n 个整数 b1,b2,,bn1bi109 )。

保证所有测试用例中 n 的总和不超过 105

1|0输出格式

对于每组测试用例,输出一行表示最少操作数。

1|0样例输入

4 2 1 1 3 2 4 1 5 1 5 3 8 3 3 8 1 4 3 3 2 2 1 1 1 1 1 1 3 3 3 3 9 1 9 2 8 3 7 4 6 5 1 2 3 2 1 4 5 6 5

1|0样例输出

0 1 4 4

1|0样例解释

第一个测试用例中,数组是 [1,1][3,2] ,答案是 0 ,不需要对元素进行删除操作。

8|0G2. Dances (Hard Version)

1|0题面描述

**这是问题的困难版本。唯一不同的是,在这个版本中 **m109

给定两个长度为 n 的序列 a,b,其中 a1=1a2anb1bn 由输入得到。

你需要根据 a 数组求出 mc 数组的值,具体地:

  • c[i]1=i
  • c[i]j=aj(2jn)

对于每一个独立的 c[i] 数组与互不影响的 b ,你可以将 bc[i] 数组中的数字随意排序,再随意删除 c[i]b 中的 k 个数,对于每一个 c[i] 数组,求最小的 k[i] 使得对于任意1jn, 都有c[i]j<bj,输出所有 c[i] 的删除数 k[i] 的和。

1|0输入格式

第一行包含一个整数 t ( 1t104 ) - 输入数据集的数量。

每个测试用例的第一行包含两个整数 nm ( 2n105 , 1m109 ) - 数组的大小和整数m

每个测试用例的第二行包含 n1 个整数 a2,,an ( 1ai109 )。

每个测试用例的第三行包含 n 个整数 b1,b2,,bn1bi109 )。

保证所有测试用例中 n 的总和不超过 105

1|0输出格式

对于每一个测试用例,输出所有 c[i] 的删除数 k[i] 的和。

1|0样例输入

4 2 4 1 3 2 4 7 5 1 5 3 8 3 3 8 4 4 3 3 2 2 1 1 1 1 1 1 3 3 3 3 9 1 9 2 8 3 7 4 6 5 1 2 3 2 1 4 5 6 5

1|0样例输出

2 12 16 4

1|0样例解释

在第一个测试案例中

  • 对于一对数组 ([1,1],[3,2]) ,答案是 0 。不需要对元素进行操作或重新排序。
  • 对于一对数组 ([2,1],[3,2]) ,答案是 0 。第一个数组的元素可以通过重新排列得到 [1,2) 。无需进行任何操作。
  • 对于一对数组 ([3,1],[3,2]) ,答案是 1 。可以从第一个数组中删除元素 3 ,从第二个数组中删除元素 2
  • 对于一对数组 ([4,1],[3,2]) ,答案是 1 。元素 4 可以从第一个数组中删除,元素 3 可以从第二个数组中删除。

__EOF__

本文作者可爱的卤蛋
本文链接https://www.cnblogs.com/acwhr/p/17842049.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   可爱的卤蛋  阅读(62)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示