3249 问题 F: 蓝桥杯2024年第十五届省赛真题-质数变革

 时间限制: 1s 内存限制: 256MB
题目描述

质数一直以来都是数学领域中的一个重要概念。传统的数论定义质数为只有两个正因子的自然数。然而,在一次变革中,小蓝提出了一个新的质数定义:绝对值只有两个正因子的数均为质数。根据小蓝的定义,质数序列如下:. . . , −7, −5, −3, −2, 2, 3, 5, 7, . . .

现给定一个包含 n 个整数的数组 a,记为 a1, a2, . . . , an,以及 q 个操作,每个操作由三个整数 op、k 和 x 组成。小蓝将按顺序执行这些操作,依次改变数组 a 中的元素值。具体地,对于一个操作:

- 若 op 等于 1,则对于数组 a 中满足 i mod k = 0 的元素 ai,将其替换为从大到小第 x 个小于它的质数。

- 若 op 等于 2,则对于数组 a 中满足 i mod k = 0 的元素 ai,将其替换为从小到大第 x 个大于它的质数。

由于小蓝不喜欢负数,也不喜欢太大的数,所以如果在所有操作结束后某个元素的值小于 0,小蓝会将其替换为 0;如果某个元素的值大于 1000000,小蓝会将其替换为 1。

请问,在所有操作结束后,数组 a 中的元素分别为多少。

输入

输入的第一行包含两个整数 n 和 q ,用一个空格分隔,表示数组 a 的长度和操作的数量。

第二行包含 n 个整数 a1, a2, . . . , an,表示初始时数组 a 中的元素。

接下来 q 行,每行包含三个整数 op、k 和 x,表示一个操作。

输出
输出一行,包含 n 个整数,表示在所有操作结束后,数组 a 中的元素值。

样例输入

5 3
2 3 6 9 12
1 2 1
1 2 1
2 3 4

样例输出

2 7 0 13 12
提示

【样例说明】

初始时,数组 a 的元素为 [2, 3, 6, 9, 12]。

执行第一个操作,将 a2 替换为从小到大第 1 个大于它的质数,即 a2 变为 5。将 a4 替换为从小到大第 1 个大于它的质数,即 a4 变为 11。数组变为[2, 5, 6, 11, 12]。

执行第二个操作,将 a2 替换为从小到大第 1 个大于它的质数,即 a2 变为 7。将 a4 替换为从小到大第 1 个大于它的质数,即 a4 变为 13。数组变为[2, 7, 6, 13, 12]。

执行第三个操作,将 a3 替换为从大到小第 4 个小于它的质数,即 a3 变为−2。数组变为 [2, 7, −2, 13, 12]。

操作结束后,将数组中所有小于 0 的元素变为 0,大于 1000000 的元素变为 1,因此最后的数组为 [2, 7, 0, 13, 12]。

【评测用例规模与约定】

对于 30% 的评测用例,1 ≤ n, q ≤ 2 × 103,1 ≤ op ≤ 2,1 ≤ k ≤ n,1 ≤ x, ai ≤ 105。对于所有评测用例,1 ≤ n, q ≤ 2 × 105,1 ≤ op ≤ 2,1 ≤ k ≤ n,1 ≤ x, ai ≤106

比赛公告

C++/C题目
【考生须知】

考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。

考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。

对同一题目,选手可多次提交答案,以最后一次提交的答案为准。选手必须通过浏览器方式提交自己的答案。

选手在其它位置的作答或其它方式提交的答案无效。

试题包含“结果填空”和“程序设计”两种题型。结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。

程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。

代码中允许使用 STL 类库。

注意: main 函数结束必须返回 0。

注意: 所有依赖的函数必须明确地在源文件中 #include

所有源码必须在同一文件中。调试通过后,拷贝提交。

提交时,注意选择所期望的编译器类型。

试题A: 进制(本题总分:5 分)

【问题描述】

8100178706957568 这个数在用x 进制表示时(x 2 [11; 36]),仅包含数字而不包含字母,请问x 是多少。比如2588 用16 进制表示为a1c,包含字母a 和c。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


试题B: 逆序对期望(本题总分:5 分)

【问题描述】

有一个数组,包含1 到n 这n 个整数,初始为一个从小到大的有序排列:

{1, 2, 3, 4; ... , n} 。一次随机交换操作指:均匀随机选取两个位置i,j ∈ [1,n] 且i ≠ j ,然后交换数组中这两个位置上的数。那么对于n = 51 ,对初始数组进行两次随机交换操作之后,数组中的逆序对的数量的期望是多少个。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个实数,在提交答案时只填写这个实数,四舍五入保留两位小数,填写多余的内容将无法得分。