跳至主要內容

1223 第 2 场 小白入门赛/强者挑战赛

大约 14 分钟

1223 第 2 场 小白入门赛/强者挑战赛

T1. 蓝桥小课堂-平方和【算法赛】

问题描述

蓝桥小课堂开课啦!

平方和公式是一种用于计算连续整数的平方和的数学公式。它可以帮助我们快速求解从 11nn 的整数的平方和,其中 nn 是一个正整数。

平方和公式的表达式如下:

12+22+32++n2=n(n+1)(2n+1)6 1^2 + 2^2 + 3^2 + \ldots + n^2 = \frac{{n \cdot (n + 1) \cdot (2n + 1)}}{6}

这个公式可以简化计算过程,避免逐个计算整数的平方并相加。通过直接使用平方和公式,我们可以更高效地求解大规模的平方和问题。

举个例子,如果要计算从 111010 的整数的平方和,可以将 nn 的值设为 1010 ,然后将其代入公式中计算:

12+22+32++102=10×(10+1)×(2×10+1)6 1^2 + 2^2 + 3^2 + \ldots + 10^2 = \frac{{10 \times (10 + 1) \times (2 \times 10 + 1)}}{6}

现在,学习完平方和公式的你需要接受小蓝的考验了。小蓝会给定一个整数 nn,请你求出 i=1ni2\sum_{i=1}^{n} i^2 的值。

输入格式

输入一行包括一个整数 nn

输出格式

输出一个整数表示答案。

样例输入

10

样例输出

385

评测数据范围

1n1061 \leq n \leq 10^6

T2. 质数王国【算法赛】

问题描述

在数字王国发生战乱后,小蓝带领着 NN 个数字逃往了隔壁的质数王国。然而,质数王国只允许质数进入。小蓝作为领袖,可以执行以下操作之一:

  • 选择一个数字 xx 并将其增加 11
  • 选择一个数字 xx 并将其减少 11

现在,请你帮小蓝计算使得 NN 个数字都能进入质数王国的最少操作次数。

输入格式

第一行包括一个整数 NN

第二行输入 NN 个整数 A1,A2,A3,,AnA_1,A_2,A_3,\cdots,A_n 表示出逃的数字。

输出格式

输出一个整数表示答案。

样例输入

5
1 2 3 4 5

样例输出

2

说明

A1,A4A_1,A_411 后数组变为 {2,2,3,5,5}\lbrace 2,2,3,5,5 \rbrace,所有的数字都变为质数,所以最小的操作数为 22

评测数据范围

1N1051 \leq N \leq 10^5

0Ai1050 \leq A_i \leq 10^5

T3. 房顶漏水啦【算法赛】

问题描述

小蓝家的房顶是一个边长为 nn 的正方形,可以看成是由 n×nn \times n 个边长为 11 的小正方形格子组成。

从上到下第 ii 行、从左到右第 jj 列的格子用 (i,j)(i,j) 表示。

小蓝的家由于年久失修,导致房顶有一些地方漏水。总共有 mm 处漏水的地方,我们用 (x1,y1),(x2,y2)...(xm,ym)(x_1, y_1),(x_2,y_2)...(x_m,y_m) 来表示。

于是小蓝来到了五金店,五金店贩卖着一些正方形木板,木板的种类有 nn 种,第 ii 种木板的边长为 ii。小蓝需要一块能够覆盖所有漏洞的木板,请问小蓝需要购买木板的最小边长是多少?

输入格式

第一行输入两个整数 n,mn,m

接下面 mm 行,每行两个整数 (xi,yi)(x_i, y_i) 代表第 ii 个漏洞的位置。

输出格式

输出一个整数,代表木板的最小边长。

样例输入

5 3
3 3
5 3
4 4

样例输出

3

说明

房顶漏洞如下图所示,使用 3×33 \times 3 的正方形可以覆盖掉所有的漏洞。

样例
样例

评测数据范围

2n1010,1mmin(n2,104),1xi,yin2 \le n \le 10^{10}, 1 \le m \le \min(n^2, 10^4), 1 \le x_i,y_i \le n

保证所有的 (xi,yi)(x_i, y_i) 互不相同。

T4. 取余【算法赛】

问题描述

在学了数论课之后,小桥给了小蓝一个挑战:

小桥规定了两个整数变量 a,ba,baa 的取值范围在 [1,A][1, A]bb 的取值范围在 [1,B][1, B],他们相互组合会形成 A×BA \times B 个数对 (a,b)(a, b),我们定义:

f(a,b)=ab×ab f(a, b) = a - b \times \lfloor \frac{a}{b} \rfloor

也就是,f(a,b)f(a,b) 等于 aabb 取模的结果。

小桥问小蓝,在所有的数对中,Sf(a,b)TS \le f(a, b) \le T 的有多少个。

小蓝不会,于是来问你,你需要回答这个问题。

输入格式

第一行输入四个整数:A,B,S,TA,B,S,T

输出格式

输出一个整数,表示合法的数对的数量。

样例输入

3 3 1 2

样例输出

4

说明

以下数对是合法的:

(1,2),(3,2),(1,3),(2,3)(1,2),(3,2),(1,3),(2,3)

评测数据范围

1A,B107,0ST1071 \le A, B \le 10^7, 0 \le S \le T \le 10^7

T5. 数学尖子生【算法赛】

问题描述

小蓝和小桥是蓝桥班上的数学尖子生,他们之间总是充满了各种竞争。

有一天他们进行了一场数学游戏,小蓝每次会给定两个正整数 aann,小桥需要回答区间 [1,n][1,n] 有多少个数 bb 满足 f(b)=af(b)=a

  • 定义函数 f(x)f(x) 表示非 xx 因数的最小正整数,比如 f(6)=4f(6)=4,因为 1,2,31,2,3 均为 66 的因数,而 44 不是 66 的因数。

作为小桥最好的朋友,请你帮她一起解决这个问题。

输入格式

第一行输入一个整数 tt 表示测试用例数量。

接下来 tt 行,每行包含两个整数 a,na,n 表示一组询问。

输出格式

对于每组询问输出一行一个数字,表示答案。

样例输入

3
2 10
3 10
16 10000000000000000

样例输出

5
4
13875013875

说明

在第一个测试用例中,[1,10][1,10] 中当 b(1,3,5,7,9)b \in(1,3,5,7,9) 时满足 f(b)=2f(b)=2,所以答案为 55

评测数据范围

1t1051 \leq t \leq 10^51a1061 \leq a \leq 10^61n10161 \leq n \leq 10^{16}

T6. 扫雷【算法赛】

问题描述

扫雷是一款经典的游戏。如下图:

图片描述
图片描述

规则如下。

  1. 地图为 n×mn \times m 的矩阵。
  2. 地图中包含地雷和数字。
  3. 如果某个点是地雷块,那么用 X 表示。
  4. 如果某个点是数字块,那么用 080 \sim 8 表示,具体的数值为该点周围地雷的数量(最少为 00 个,最多为 88 个)。
  5. 如果某个点未知,即可能是地雷或者数字,我们用 * 表示。

周围:对于 (x,y)(x,y) 点来说,周围为 (x1,y),(x+1,y),(x,y1),(x,y+1),(x1,y1),(x1,y+1),(x+1,y1),(x+1,y+1)(x-1, y),(x+1, y),(x, y-1),(x, y+1),(x-1, y-1),(x-1, y+1),(x+1, y-1),(x+1, y+1) 八个位置。需要注意的是,超过边界的点不能算作周围的点

了解上述规则后,我们得知,可以通过数字块推理出地雷的位置。

小蓝是扫雷高手,他点开了一局游戏。

玩了一段时间之后,他发现没法推断出来到底哪些块是地雷(如上述图片),他感到十分厌烦,觉得这个游戏有 BUG。

于是小蓝找到了你,想让你用计算机判断一下,某些地图残局是否有 BUG。

具体来说,小蓝给你一幅 n×mn \times m 的地图,地图中只包含数字和 *(不包含 X,因为不能点开雷区),小蓝想知道,对于该局面,能否直接推断出所有的 * 的值。如果可以,代表该局面的解唯一,即没有 BUG;如果不能,小蓝就是会认为该局面的解不唯一,游戏产生了 BUG。

输入格式

第一行一个整数 TT,代表扫雷地图数量。

对于每一个地图,由以下部分构成:

  1. 第一行输入两个整数 n,mn,m
  2. 接下面 nn 行,每行输入 mm 个字符。

输出格式

输出 TT 行。

ii 行对应第 ii 个地图的解情况,每行输出一个字符串:输出 Single 代表只有一种解,即无 BUG,输出 Multiple 代表存在多个解,即有 BUG。

样例输入

2
3 5
01*10
011*0
00000
3 3
***
232
***

样例输出

Single
Multiple

说明

第一个样例就只有一种解:

01X10
01110
00000

第二组样例存在如下多组解:

XX1   01X   XXX
232   232   232
01X   XX1   000

评测数据范围

1n×m100,1T1001 \le n \times m \le 100, 1 \le T \le 100

保证输入中只包含* 和数字字符,并且至少存在一种合法地图解,即不会存在自相矛盾的残局。

每组的 * 不会超过 1616 个。

T7. 魔术师【算法赛】

问题描述

小蓝是一个魔术师,他正在蓝桥大剧院表演。

台上有一排 nn 个盒子,编号 1n1 \sim n。表演开始之前,助手会在每个盒子里放入一个小球,小球的颜色有三种,分别为红、黄、蓝。

小蓝有 33 种魔术操作:

  1. 颜色互换,小蓝会选择一个区间 [l,r][l,r] 和两种颜色 a,ba,b,对于每一个盒子来说,如果它的编号在 [l,r][l,r] 内,并且盒子内的球颜色为 aa,那么盒子里球颜色变为 bb,如果盒子里的球颜色为 bb,那么盒子里球颜色变为 aa
  2. 染色,小蓝会选择一个区间 [l,r][l,r] 和两种颜色 a,ba,b,对于每一个盒子来说,如果它的编号在 [l,r][l,r] 内,并且盒子内的球颜色为 aa,那么盒子里球颜色变为 bb
  3. 分裂,小蓝会选择一个区间 [l,r][l,r] 和一种颜色 aa,对于每一个盒子来说,如果它的编号在 [l,r][l,r] 内,并且盒子内的球颜色为 aa,那么盒子里所有的球由一个分裂成两个。

补充说明:对于三种魔术,在区间内,如果不存在颜色 aa 的球,那么对于颜色 aa 的操作将不会发生;如果不存在颜色 bb 的球,那么同理;如果都不存在,那么什么都不会发生。

例如:对于颜色互换术而言,如果不存在颜色为 aa 的球,但是存在颜色为 bb 的球,那么颜色为 bb 的球将被变成 aa,但是将没有颜色为 aa 的球变成 bb

小蓝会不断的重复上述三种操作。

你是小蓝的助手,每一次操作后,你都需要回答小蓝,每种颜色的球现在有多少个。答案可能很大,请对 998244353998244353 取模。

输入格式

第一行输入两个整数 n,mn,m

接下来一行,输入 nn 个整数 c1,c2,c3,...,cnc_1, c_2, c_3,...,c_n,每个盒子里球的初始颜色,为了方便,我们用数字 1,2,31,2,3 来表示颜色红、黄。蓝,下述操作同理。

接下来 mm 行,每行包含一个操作,先输入三个整数 l,r,optl,r,optl,rl,r 代表操作区间为编号在 [l,r][l,r] 中的盒子,optopt 代表操作种类,后续输入如下:

  1. 如果 opt=1opt = 1,输入两个整数 a,ba,b,代表进行颜色互换术,将区间内 a,ba,b 颜色互换,即颜色为 aa 的球变为颜色 bb,颜色为 bb 的球变为颜色 aa
  2. 如果 opt=2opt = 2,输入两个整数 a,ba,b,代表进行染色术,将区间内 aa 颜色球变为颜色 bb
  3. 如果 opt=3opt = 3,输入一个整数 aa,代表进行分裂术,将区间内所有 aa 颜色的球由一个分裂成两个。

输出格式

输出 mm 行,每行三个整数,表示这次操作结束后,所有盒子中颜色分别为 1,2,31,2,3 的球的数量,答案可能很大,请对 998244353998244353 取模。

样例输入

5 3
1 1 2 3 1
1 3 1 1 2
2 3 2 1 2
2 4 3 2

样例输出

2 2 1
1 3 1
1 5 1

说明

第一次操作后:{21,21,11,31,11}\lbrace 2_1,2_1,1_1,3_1,1_1 \rbrace。值代表该盒子里球的颜色,角标代表该盒子的球数量。

第二次操作后:{21,21,21,31,11}\lbrace 2_1,2_1,2_1,3_1,1_1 \rbrace

第三次操作后:{21,22,22,31,11}\lbrace 2_1,2_2,2_2,3_1,1_1 \rbrace

输入输出数据量较大,请使用较快的输入输出方式。

评测数据范围

1n,m105,1opt,ci,a,b3,1lrn1 \le n, m \le 10^5, 1 \le opt, c_i, a, b\le 3, 1\le l \le r \le n

保证 aba \neq b

T8. 扫雷 II【算法赛】

问题描述

扫雷是一款经典的游戏。如下图:

图片描述
图片描述

规则如下。

  1. 地图为 n×mn \times m 的矩阵。
  2. 地图中包含地雷和数字。
  3. 如果某个点是地雷块,那么用 X 表示。
  4. 如果某个点是数字块,那么用 080 \sim 8 表示,具体的数值为该点周围地雷的数量(最少为 00 个,最多为 88 个)。
  5. 如果某个点未知,即可能是地雷或者数字,我们用 * 表示。

周围:对于 (x,y)(x,y) 点来说,周围为 (x1,y),(x+1,y),(x,y1),(x,y+1),(x1,y1),(x1,y+1),(x+1,y1),(x+1,y+1)(x-1, y),(x+1, y),(x, y-1),(x, y+1),(x-1, y-1),(x-1, y+1),(x+1, y-1),(x+1, y+1) 八个位置。需要注意的是,超过边界的点不能算作周围的点

小蓝是扫雷高手,于是他在原来扫雷游戏的基础上改动了一下。

现在给定你一个 3×m3 \times m 的地图,其中第二行全部都不是地雷,第一行和第三行都是未知,小蓝将第二行的数字全部告诉你,请问这幅地图有多少种不同的可能?

也就是说,假设每个格子有 1010 种情况(X 或者 080 \sim 8),那么 3×m3 \times m 的地图总共有 103m10^{3m} 情况,请你找出满足以下两个要求的地图数量:

  1. 地图合法,即满足扫雷规则。
  2. 第二行与给定第二行的值相同。

答案可能很大,请对 998244353998244353 取模。

输入格式

第一行输入一个整数 mm

第二行输入 mm 个整数 p1,p2,p3,...,pmp_1, p_2, p_3, ..., p_m,代表第地图中 22 行第 ii 列的值。

输出格式

输出一个整数,代表可能的种类数,答案可能很大,请对 998244353998244353 取模。

样例输入

3
2 3 2

样例输出

8

说明

以下 88 种。

XX1  01X  XXX  000  X2X  1X1  1XX  X10
232  232  232  232  232  232  232  232
01X  XX1  000  XXX  1X1  X2X  X10  1XX

评测数据范围

1n5×105,0pi81 \le n \le 5 \times 10^5, 0 \le p_i \le 8

T9. 香煎七十二餐馆【算法赛】

问题描述

小蓝开了一家餐馆:“香煎七十二餐馆!”

据说共有七十二道菜,每道菜煎炸的次数不一,最简单的只需要煎一次,最复杂的需要煎炸整整七十二次!

开店第一天,举办了一场餐馆派对,免费接待 nn 位顾客。

nn 位顾客坐在一个长桌上,编号 1n1 \sim n。小蓝的餐馆共有 7272 道菜,编号 1721 \sim 72。每位顾客只会点一道菜,nn 位顾客中有 mm 位顾客已经点好了菜,剩下的顾客由小蓝推荐点菜。

由于每位顾客用餐的时候,都会对菜品评头论足,如果两个相邻的顾客吃的是同一道菜,他们难免会讨论,有一些吹毛求疵的顾客可能借此将消极情绪传播给他人。为了避免上述情况发生,导致影响口碑,小蓝将安排相邻的顾客的菜肴都不相同

请问有多少种不同的安排方案,答案可能很大,请对 998244353998244353 取模。

相邻:即编号相邻,iii1i-1i+1i+1 相邻。注意,这是一张长桌,所以 11nn 并不相邻

输入格式

第一行输入两个整数 n,mn,m

接下来 mm 行,每行两个整数 pi,cip_i, c_i,表示编号为 pip_i 的人已经点好了一份编号为 cic_i 的菜肴。

输出格式

输出一个整数,表示合法的安排方案数。答案可能很大,请对 998244353998244353 取模。

样例输入

3 1
2 1

样例输出

5041

说明

第一个顾客可以安排编号 2722 \sim 72 的菜肴,第三位顾客可以安排编号 2722 \sim 72 的菜肴。共计 712=504171^2=5041

评测数据范围

0m105,3n1015,1ci72,1pin0 \le m\le 10^5, 3 \le n \le 10^{15}, 1 \le c_i \le 72, 1 \le p_i \le n

保证所有的 pip_i 不相同。