当前位置: 首页 > news >正文

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。


第十三届蓝桥杯大赛软件赛决赛(国赛)
Java A 组

【考生须知】

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

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

对同一题目, 选手可多次提交答案, 以最后一次提交的答案为准。

选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。

试题包含 “结果填空” 和 “程序设计” 两种题型。

结果填空题: 要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可, 不要书写多余的内容。

程序设计题: 要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。

注意: 在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的, 不能只对试卷中给定的数据有效。

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

注意: 不要使用 package 语句。

注意: 选手代码的主类名必须为: Main, 否则会被判为无效代码。

注意: 如果程序中引用了类库, 在提交时必须将 import 语句与程序的其他部分同时提交。只允许使用 Java 自带的类库。


试题 A: 火柴棒数字

本题总分: 5 分

【问题描述】

小蓝最近迷上了用火柴棒拼数字字符, 方法如下图所示:

在这里插入图片描述

他只能拼 0 至 9 这十种数字字符, 其中每个数字字符需要的火柴棒的数目依次是: 6 , 2 , 5 , 5 , 4 , 5 , 6 , 3 , 7 , 6 6,2,5,5,4,5,6,3,7,6 6,2,5,5,4,5,6,3,7,6 。他不喜欢重复拼同一个数字字符, 所以对于每个数字字符他最多拼十个。小蓝会把拼出来的数字字符组合在一起形成一个整数,例如对于整数 345 , 需要的火柴棒的数目为 5 + 4 + 5 = 14 5+4+5=14 5+4+5=14 根。小蓝有 300 根火柴棒, 他想知道自己能拼出的最大整数是多少? 可以不使用完这 300 根火柴棒, 可以有多余的火柴棒剩下。

【答案提交】

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


试题 B: 小蓝与钥匙

本题总分: 5 分

【问题描述】

小蓝是幼儿园的老师, 他的班上有 28 个孩子, 今天他和孩子们一起进行了一个游戏。

小蓝所在的学校是寄宿制学校, 28 个孩子分别有一个自己的房间, 每个房间对应一把钥匙, 每把钥匙只能打开自己的门。现在小蓝让这 28 个孩子分别将自己宿舍的铜匙上交, 再把这 28 把钥匙随机打乱分给每个孩子一把钥匙, 有 28 ! = 28 × 27 × ⋯ × 1 28!=28 \times 27 \times \cdots \times 1 28!=28×27××1 种分配方案。小蓝想知道这些方案中, 有多少种方案恰有一半的孩子被分到自己房间的钥匙 (即有 14 个孩子分到的是自己房间的钥匙,有 14 个孩子分到的不是自己房间的钥匙)。

【答案提交】

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


试题 C: 内存空间

时间限制: 3.0s 内存限制: 512.0MB 本题总分: 10 分

【问题描述】

小蓝最近总喜欢计算自己的代码中定义的变量占用了多少内存空间。

为了简化问题, 变量的类型只有以下三种:

int: 整型变量, 一个 int 型变量占用 4 Byte 的内存空间。

long: 长整型变量, 一个 1 ong 型变量占用 8 Byte 的内存空间。

String: 字符串变量, 占用空间和字符串长度有关, 设字符串长度为 L L L,则字符串占用 L L L Byte 的内存空间, 如果字符串长度为 0 则占用 0 Byte 的内存空间。

定义变量的语句只有两种形式, 第一种形式为:

type var1=value1, var2=value 2 ⋯ 2 \cdots 2;

定义了若干个 type 类型变量 var1、var 2 、 ⋯ 2 、 \cdots 2, 并且用 value1、value 2 ⋯ \cdots 初始化,

多个变量之间用’,’ 分隔, 语句以’; '结尾, type 可能是 int、long 或 String。例如 int a = 1 , b = 5 , c = 6 a=1, b=5, c=6 a=1,b=5,c=6; 占用空间为 12 Byte; long a = 1 , b = 5 a=1, b=5 a=1,b=5;占用空间为 16 Byte; String s 1=“”, s 2=“hello”, s 3=“world”; 占用空间为 10 Byte

第二种形式为:

type[] arr1=new type[size1], arr2=new type[size2]. ;

定义了若干 type 类型的一维数组变量 arr 1 、 arr ⁡ 2 ⋯ 1 、 \operatorname{arr} 2 \cdots 1arr2, 且数组的大小为 size1、size2 ⋯ \cdots , 多个变量之间用’, ’ 进行分隔, 语句以’; '结尾, type 只可能是 int 或 long。例如 int[] a1=new int[10]; 占用的内存空间为 40

Byte; long[] a1=new long[10],a2=new long[10]; 占用的内存空间为 160 Byte.

已知小蓝有 T T T 条定义变量的语句, 请你帮他统计下一共占用了多少内存空间。结果的表示方式为: a G B b M B c K B d B a \mathrm{~GB} b \mathrm{MB} c \mathrm{~KB} d \mathrm{~B} a GBbMBc KBd B, 其中 a 、 b 、 c 、 d a 、 b 、 c 、 d abcd 为统计的结果, G B 、 M B 、 K B 、 B G B 、 M B 、 K B 、 B GBMBKBB 为单位。优先用大的单位来表示, 1 G B = 1024 M B 1 \mathrm{~GB}=1024 \mathrm{MB} 1 GB=1024MB, 1 M B = 1024 K B , 1 K B = 1024 B 1 \mathrm{MB}=1024 \mathrm{~KB}, 1 \mathrm{~KB}=1024 \mathrm{~B} 1MB=1024 KB,1 KB=1024 B ,其中 B \mathrm{B} B 表示 Byte。如果 a 、 b 、 c 、 d a 、 b 、 c 、 d abcd 中的某几个数字为 0 , 那么不必输出这几个数字及其单位。题目保证一行中只有一句定义变量的语句, 且每条语句都满足题干中描述的定义格式, 所有的变量名都是合法的且均不重复。题目中的数据很规整, 和上述给出的例子类似, 除了类型后面有一个空格, 以及定义数组时 new 后面的一个空格之外, 不会出现多余的空格。

【输入格式】

输入的第一行包含一个整数 T T T, 表示有 T T T 句变量定义的语句。接下来 T T T 行, 每行包含一句变量定义语句。

【输出格式】

输出一行包含一个字符串, 表示所有语句所占用空间的总大小。

【样例输入 1 】

1 \begin{array}{llll}1 \end{array} 1

l o n g [ ] n u m s = n e w l o n g [ 131072 ] ; \begin{array}{llll}long[] nums=new long[131072];\end{array} long[]nums=newlong[131072];

【样例输出 1 】 \mathbf{1 】} 1

1 M B 1 \mathrm{MB} 1MB

【样例输入 2】

4 \begin{array}{llll}4\end{array} 4

i n t a = 0 , b = 0 ; \begin{array}{llll}int a=0,b=0;\end{array} inta=0,b=0;

l o n g x = 0 , y = 0 ; \begin{array}{llll}long x=0,y=0;\end{array} longx=0,y=0;

S t r i n g s 1 = " h e l l o " , s 2 = " w o r l d " ; \begin{array}{llll}String s1="hello",s2="world";\end{array} Strings1="hello",s2="world";

l o n g [ ] a r r 1 = n e w l o n g [ 100000 ] , a r r 2 = n e w l o n g [ 100000 ] ; \begin{array}{llll}long[] arr1=new long[100000], arr2=new long[100000];\end{array} long[]arr1=newlong[100000],arr2=newlong[100000];

【样例输出 2】

1MB538KB546B

【样例说明】

样例 1, 占用的空间为 131072 × 8 = 1048576 B 131072 \times 8=1048576 \mathrm{~B} 131072×8=1048576 B, 换算过后正好是 1 M B 1 \mathrm{MB} 1MB, 其它三个单位 G B 、 K B 、 B \mathrm{GB} 、 \mathrm{KB、B} GBKBB 前面的数字都为 0 , 所以不用输出。

样例 2 , 占用的空间为 4 × 2 + 8 × 2 + 10 + 8 × 100000 × 2 B 4 \times 2+8 \times 2+10+8 \times 100000 \times 2 B 4×2+8×2+10+8×100000×2B, 换算后是 1MB538KB546B。

【评测用例规模与约定】

对于所有评测用例, 1 ≤ T ≤ 10 1 \leq T \leq 10 1T10, 每条变量定义语句的长度不会超过 1000 。所有的变量名称长度不会超过 10 , 且都由小写字母和数字组成。对于整型变量, 初始化的值均是在其表示范围内的十进制整数, 初始化的值不会是变量。对于 String 类型的变量, 初始化的内容长度不会超过 50 , 且内容仅包含小写字母和数字, 初始化的值不会是变量。对于数组类型变量, 数组的长度为一个整数, 范围为: [ 0 , 2 30 ] \left[0,2^{30}\right] [0,230], 数组的长度不会是变量。 T T T 条语句定义的变量所占的内存空间总大小不会超过 1 G B 1 \mathrm{~GB} 1 GB, 且大于 0 B 0 \mathrm{~B} 0 B


试题 D: 斐波那契数组

时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 10 分

【问题描述】

如果数组 A = ( a 0 , a 1 , ⋯ , a n − 1 ) A=\left(a_{0}, a_{1}, \cdots, a_{n-1}\right) A=(a0,a1,,an1) 满足以下条件, 就说它是一个斐波那契数组:

  1. n ≥ 2 n \geq 2 n2;
  2. a 0 = a 1 ; a_{0}=a_{1} ; a0=a1;
  3. 对于所有的 i ( i ≥ 2 ) i(i \geq 2) i(i2), 都满足 a i = a i − 1 + a i − 2 a_{i}=a_{i-1}+a_{i-2} ai=ai1+ai2

现在, 给出一个数组 A \boldsymbol{A} A, 你可以执行任意次修改, 每次修改将数组中的某个位置的元素修改为一个大于 0 的整数。请问最少修改几个元素之后, 数组 A A A会变成一个斐波那契数组。

【输入格式】

输入的第一行包含一个整数 n n n, 表示数组 A A A 中的元素个数。

第二行包含 n n n 个整数 a 0 , a 1 , ⋯ , a n − 1 a_{0}, a_{1}, \cdots, a_{n-1} a0,a1,,an1, 相邻两个整数之间用一个空格分隔。

【输出格式】

输出一行包含一个整数表示最少需要修改数组 A A A 中的几个元素之后, 数组 A A A 可以变为一个斐波那契数组。

【样例输入】

5 \begin{array}{llll}5\end{array} 5

1 2 2 4 8 \begin{array}{llll}1&2&2&4&8\end{array} 12248

【样例输出】

3 \begin{array}{llll}3\end{array} 3

【样例说明】

将原数组修改为 ( 1 , 1 , 2 , 3 , 5 ) (1,1,2,3,5) (1,1,2,3,5), 最少修改三个元素变成了一个斐波那契数组。

【评测用例规模与约定】

对于所有评测用例, 2 ≤ n ≤ 1 0 5 , 1 ≤ a i ≤ 1 0 6 2 \leq n \leq 10^{5}, 1 \leq a_{i} \leq 10^{6} 2n105,1ai106


试题 E: 交通信号

时间限制: 3.0s 内存限制: 512.0MB 本题总分: 15 分

【问题描述】

LQ 市的交通系统可以看成由 n n n 个结点和 m m m 条有向边组成的有向图。在每条边上有一个信号灯, 会不断按绿黄红黄绿黄红黄… 的顺序循环 (初始时刚好变到绿灯)。当信号奵为绿灯时允许正向通行, 红奵时允许反向通行, 黄奵时不允许通行。每条边上的信号奵的三种颜色的持续时长都互相独立, 其中黄奵的持续时长等同于走完路径的耗时。当走到一条边上时, 需要观察边上的信号奵,如果允许通行则可以通过此边, 在通行过程中不再受信号奵的影响: 否则需要等待, 直到允许通行。

请问从结点 s s s 到结点 t t t 所需的最短时间是多少, 如果 s s s 无法到达 t t t 则输出 -1 .

【输入格式】

输入的第一行包含四个整数 n , m , s , t n, m, s, t n,m,s,t, 相邻两个整数之间用一个空格分隔。

接下来 m m m 行, 每行包含五个整数 u i , v i , g i , r i , d i u_{i}, v_{i}, g_{i}, r_{i}, d_{i} ui,vi,gi,ri,di, 相邻两个整数之间用一个空格分隔, 分别表示一条边的起点, 终点, 绿奵、红奵的持续时长和距离 (黄奵的持续时长).

【输出格式】

输出一行包含一个整数表示从结点 s s s 到达 t t t 所需的最短时间。

【样例输入】

4 4 1 4 \begin{array}{llll}4 & 4 & 1 & 4\end{array} 4414

1 2 1 2 6 \begin{array}{llllllll}1 & 2 & 1 & 2 & 6\end{array} 12126

4 2 1 1 5 \begin{array}{lllllllll}4 & 2 & 1 & 1 & 5\end{array} 42115

1 3 1 1 1 \begin{array}{lllllll}1 & 3 & 1 & 1 & 1\end{array} 13111

3 4 1 99 1 \begin{array}{llllll}3 & 4 & 1 & 99 & 1\end{array} 341991

【样例输出】

11 \begin{array}{llll}11\end{array} 11

【评测用例规模与约定】

对于 40 % 40 \% 40% 的评测用例, n ≤ 500 , 1 ≤ g i , r i , d i ≤ 100 n \leq 500,1 \leq g_{i}, r_{i}, d_{i} \leq 100 n500,1gi,ri,di100;

对于 70 % 70 \% 70% 的评测用例, n ≤ 5000 n \leq 5000 n5000

对于所有评测用例, 1 ≤ n ≤ 100000 , 1 ≤ m ≤ 200000 , 1 ≤ s , t ≤ n 1 \leq n \leq 100000,1 \leq m \leq 200000,1 \leq s, t \leq n 1n100000,1m200000,1s,tn, 1 ≤ u i , v i ≤ n , 1 ≤ g i , r i , d i ≤ 1 0 9 。 1 \leq u_{i}, v_{i} \leq n, 1 \leq g_{i}, r_{i}, d_{i} \leq 10^{9} 。 1ui,vin,1gi,ri,di109


试题 F: 数组个数

时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 15 分

【问题描述】

小蓝有一个长度为 n n n 的数组 B = ( b 0 , b 1 , ⋯ , b n − 1 ) B=\left(b_{0}, b_{1}, \cdots, b_{n-1}\right) B=(b0,b1,,bn1), 数组 B B B 是由另一个长度为 n n n 的环形数组 A = ( a 0 , a 1 , ⋯ , a n − 1 ) A=\left(a_{0}, a_{1}, \cdots, a_{n-1}\right) A=(a0,a1,,an1) 经过一次相邻最大化操作得到的, 其中 a i a_{i} ai a i + 1 a_{i+1} ai+1 相邻, a 0 a_{0} a0 a n − 1 a_{n-1} an1 相邻。

形式化描述为:

b i = { max ⁡ ( a n − 1 , a 0 , a 1 ) , ( i = 0 ) max ⁡ ( a i − 1 , a i , a i + 1 ) , ( 0 < i < n − 1 ) max ⁡ ( a n − 2 , a n − 1 , a 0 ) , ( i = n − 1 ) b_{i}= \begin{cases}\max \left(a_{n-1}, a_{0}, a_{1}\right), & (i=0) \\ \max \left(a_{i-1}, a_{i}, a_{i+1}\right), & (0<i<n-1) \\ \max \left(a_{n-2}, a_{n-1}, a_{0}\right), & (i=n-1)\end{cases} bi= max(an1,a0,a1),max(ai1,ai,ai+1),max(an2,an1,a0),(i=0)(0<i<n1)(i=n1)

小蓝想知道, 可能有多少个满足条件的数组 A A A, 经过一次相邻最大化操作后能得到数组 B B B, 注意 A A A 中的每个元素都要求为非负整数。

【输入格式】

输入的第一行包含一个整数 n n n, 表示数组长度。

第二行包含 n n n 个整数 b 0 , b 1 , ⋯ , b n − 1 b_{0}, b_{1}, \cdots, b_{n-1} b0,b1,,bn1, 相邻两个整数之间用一个空格分隔。

【输出格式】

输出一行包含一个整数表示答案, 答案可能很大, 请输出答案除以 1000000007 后的余数。

【样例输入】

5 \begin{array}{llll}5\end{array} 5

8 6 1 8 8 \begin{array}{llllll}8 & 6 & 1 & 8 & 8\end{array} 86188

【样例输出】

7 \begin{array}{llll}7\end{array} 7

【样例说明】

可能的 A A A 数组有 7 个: ( 6 , 0 , 0 , 1 , 8 ) 、 ( 6 , 0 , 1 , 0 , 8 ) 、 ( 6 , 0 , 1 , 1 , 8 ) 、 ( 6 , 1 , 0 , 0 , 8 ) (6,0,0,1,8) 、(6,0,1,0,8) 、(6,0,1,1,8) 、(6,1,0,0,8) (6,0,0,1,8)(6,0,1,0,8)(6,0,1,1,8)(6,1,0,0,8) ( 6 , 1 , 0 , 1 , 8 ) 、 ( 6 , 1 , 1 , 0 , 8 ) 、 ( 6 , 1 , 1 , 1 , 8 ) (6,1,0,1,8) 、(6,1,1,0,8) 、(6,1,1,1,8) (6,1,0,1,8)(6,1,1,0,8)(6,1,1,1,8)

【评测用例规模与约定】

对于 30 % 30 \% 30% 的评测用例, 3 ≤ n ≤ 10 3 \leq n \leq 10 3n10;

对于 60 % 60 \% 60% 的评测用例, 3 ≤ n ≤ 100 3 \leq n \leq 100 3n100;

对于所有评测用例, 3 ≤ n ≤ 1000 , 0 ≤ b i ≤ 10 3 \leq n \leq 1000,0 \leq b_{i} \leq 10 3n1000,0bi10


试题 G: 六六大顺

时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 20 分

【问题描述】

六六大顺, 本指农历六月初六。多用于祝福中年人士家庭幸福, 工作顺利,事业有成, 身体健康。源自《左传》“君义, 臣行, 父慈, 子孝, 兄爱, 弟敬,此数者䍗谓六顺也。”

6 在我国自古以来是一个吉祥的数字, 定义数列 A = ( a 1 , a 2 , ⋯ , a i , ⋯ ) A=\left(a_{1}, a_{2}, \cdots, a_{i}, \cdots\right) A=(a1,a2,,ai,),其中 a 1 = 6 , a 2 = 66 , ⋯ , a i = 10 ⋅ a i − 1 + 6 a_{1}=6, a_{2}=66, \cdots, a_{i}=10 \cdot a_{i-1}+6 a1=6,a2=66,,ai=10ai1+6

定义一个数列 B = ( b 1 , b 2 , ⋯ , b i , ⋯ ) B=\left(b_{1}, b_{2}, \cdots, b_{i}, \cdots\right) B=(b1,b2,,bi,), 其中 b 1 = 6 × 6 , b 2 = 66 × 66 , ⋯ b_{1}=6 \times 6, b_{2}=66 \times 66, \cdots b1=6×6,b2=66×66,, b i = a i ⋅ a i b_{i}=a_{i} \cdot a_{i} bi=aiai

现在小蓝想知道数列 B B B 的前 n n n 项的和是多少, 你能帮帮小蓝吗?

【输入格式】

输入一行包含一个正整数 n n n

【输出格式】

输出一行包含一个整数表示数列 B B B n n n 项的和。

【样例输入】

3 \begin{array}{llll}3\end{array} 3

【样例输出】

447948 \begin{array}{llll}447948\end{array} 447948

【样例说明】

b 1 = 6 × 6 = 36 , b 2 = 66 × 66 = 4356 , b 3 = 666 × 666 = 443556 b_{1}=6 \times 6=36, b_{2}=66 \times 66=4356, b_{3}=666 \times 666=443556 b1=6×6=36,b2=66×66=4356,b3=666×666=443556, 所以前三项的和为 36 + 4356 + 443556 = 447948 36+4356+443556=447948 36+4356+443556=447948

【评测用例规模与约定】

对于 20 % 20 \% 20% 的评测用例, 1 ≤ n ≤ 100 1 \leq n \leq 100 1n100;

对于 50 % 50 \% 50% 的评测用例, 1 ≤ n ≤ 100000 1 \leq n \leq 100000 1n100000;

对于所有评测用例, 1 ≤ n ≤ 10000000 1 \leq n \leq 10000000 1n10000000


试题 H : \mathrm{H}: H: 选素数

时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 20 分

【问题描述】

小蓝有一个数 x x x, 每次操作小蓝会选择一个小于 x x x 的素数 p p p, 然后在 x x x 成为 p p p 的倍数前不断将 x x x 加 1 , (如果 x x x 一开始就是 p p p 的倍数则 x x x 不变)。

小乔看到了小蓝进行了 2 次上述操作后得到的结果 n n n, 他想知道 x x x 在一开始是多少。如果有多种可能, 他想知道 x x x 一开始最小可以是多少, 而如果不存在任何解, 说明小乔看错了, 此时请输出 -1 。

【输入格式】

输入一行包含一个整数 n n n, 表示经过两次操作后 x x x 的值。

【输出格式】

输出一行包含一个整数表示 x x x 的初始值。如果有多个解, 输出最小的。如果不存在解, 请输出 -1 。

【样例输入】

22 \begin{array}{llll}22\end{array} 22

【样例输出】

8 \begin{array}{llll}8\end{array} 8

【评测用例规模与约定】

对于 60 % 60 \% 60% 的评测用例, 1 ≤ n ≤ 5000 1 \leq n \leq 5000 1n5000;

对于所有评测用例, 1 ≤ n ≤ 1 0 6 1 \leq n \leq 10^{6} 1n106


试题 I: 图书借阅

时间限制: 10.0 s 10.0 \mathrm{~s} 10.0 s 内存限制: 1.0 G B 1.0 \mathrm{~GB} 1.0 GB 本题总分: 25 分

【问题描述】

小蓝是一所图书馆的管理员, 图书馆中目前有 n n n 种书, 第 i i i 种书有 a i a_{i} ai 本。

小蓝目前有 m m m 条未来若干天中用户的预约借阅记录, 每个借阅记录由 b i , l i , r i b_{i}, l_{i}, r_{i} bi,li,ri 组成, 表示在 l i l_{i} li 日要借用一本书 b i , r i b_{i}, r_{i} bi,ri 日归还, r i r_{i} ri 日结束后图书馆才可以将这本书重新借出。

小蓝分析了一下预约借阅记录, 发现现有的书不一定能满足所有人的预约请求, 于是小蓝打算额外购买一些书加入到图书馆。小蓝的预算有限, 请问如果额外添加不超过 x x x 本书, 最多有多少条预约记录能得到满足? 小蓝可以选取一部分记录使其满足, 不一定需要按借阅或预定的时间顺序满足。

【输入格式】

输入的第一行包含三个整数 n , m , x n, m, x n,m,x, 相邻两个整数之间用一个空格分隔。

第二行包含 n n n 个整数 a 1 , a 2 , ⋯ , a n a_{1}, a_{2}, \cdots, a_{n} a1,a2,,an, 相邻两个整数之间用一个空格分隔, 表示目前拥有的每种书的本数。

接下来 m m m 行, 每行包含 3 个整数 b i , l i , r i b_{i}, l_{i}, r_{i} bi,li,ri, 相邻两个整数之间用一个空格分隔, 表示一条预约借阅记录。

【输出格式】

输出一行包含一个整数表示给定条件下最多能满足预约借阅的记录数。

【样例输入】

3 11 3 \begin{array}{llll}3 & 11 & 3\end{array} 3113

1 0 2 \begin{array}{llll}1 & 0 & 2\end{array} 102

1 2 4 \begin{array}{llll}1 & 2 & 4\end{array} 124

1 1 2 \begin{array}{llll}1 & 1 & 2\end{array} 112

1 4 5 \begin{array}{llll}1 & 4 &5\end{array} 145

1 3 5 \begin{array}{llll}1 & 3 & 5\end{array} 135

1 1 3 \begin{array}{llll}1 & 1& 3\end{array} 113

2 1 1 \begin{array}{llll}2 & 1 & 1\end{array} 211

2 2 2 \begin{array}{llll}2& 2 & 2\end{array} 222

2 3 3 \begin{array}{llll}2 & 3& 3\end{array} 233

2 1 2 \begin{array}{llll}2& 1 & 2\end{array} 212

2 3 4 \begin{array}{llll}2& 3 & 4\end{array} 234

3 1 5 \begin{array}{llll}3 & 1 &5\end{array} 315

【样例输出】

10 \begin{array}{llll}10\end{array} 10

【评测用例规模与约定】

对于 10 % 10 \% 10% 的评测用例, n , m ≤ 10 , l i ≤ r i ≤ 10 n, m \leq 10, l_{i} \leq r_{i} \leq 10 n,m10,liri10;

对于 50 % 50 \% 50% 的评测用例, n , m ≤ 2000 , l i ≤ r i ≤ 5000 n, m \leq 2000, l_{i} \leq r_{i} \leq 5000 n,m2000,liri5000 :

对于所有评测用例, 1 ≤ n ≤ 100000 , 1 ≤ x ≤ m ≤ 200000 , 1 ≤ b i ≤ n 1 \leq n \leq 100000,1 \leq x \leq m \leq 200000,1 \leq b_{i} \leq n 1n100000,1xm200000,1bin, 1 ≤ l i ≤ r i ≤ 1 0 6 , 0 ≤ a i ≤ 1 0 5 1 \leq l_{i} \leq r_{i} \leq 10^{6}, 0 \leq a_{i} \leq 10^{5} 1liri106,0ai105


试题 J \mathrm{J} J : 括号序列树

时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 25 分

【问题描述】

有一棵二叉树, 根结点上有一个空字符串, 每个点的左儿子上的字符串为其父亲结点的字符串尾部额外加一个左括号, 右儿子则是在尾部加一个右括号。树中的每个叶子结点上的字符串都分别和每个由 n n n 对括号组成的合法括号序列一一对应。

给定 n n n, 求此时这棵树的最大匹配所含的边数。

【输入格式】

输入一行包含一个整数 n n n

【输出格式】

输出一行包含一个整数表示满足条件的序列的数量, 答案可能很大, 请输出答案除以 998244353 的余数。

【样例输入】

9 \begin{array}{llll}9\end{array} 9

【样例输出】

10350 \begin{array}{llll}10350\end{array} 10350

【评测用例规模与约定】

对于 20 % 20 \% 20% 的评测用例, n ≤ 10 n \leq 10 n10

对于 40 % 40 \% 40% 的评测用例, n ≤ 300 n \leq 300 n300

对于 60 % 60 \% 60% 的评测用例, n ≤ 5000 n \leq 5000 n5000;

对于 85 % 85 \% 85% 的评测用例, n ≤ 1 0 5 n \leq 10^{5} n105;

对于所有评测用例, 1 ≤ n ≤ 1 0 6 1 \leq n \leq 10^{6} 1n106

相关文章:

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 火柴棒数字试题 B: 小蓝与钥匙试题 C: 内存空间试题 D: 斐波那契数组试题 E: 交通信号试题 F: 数组个数试题 G: 六六大顺试题 H : \mathrm{H}: H: 选素数试题 I: 图书借阅试题 J \mathrm{J} J : 括号序列树 发现宝藏 前些天发现了一个…...

数据结构_顺序表中基本操作的实现_代码

学习笔记&#xff0c;仅供参考 1.头文件 2.初始化 3.增加值 4.根据下标取值 5.查找 6.插入 7.删除 8.动态增加数组的长度 9.所有代码 10.运行结果 1.头文件 //顺序表的实现——动态分配 #include<stdio.h> #include<stdlib.h> #define InitSize 10 type…...

提升SEO排名!SSL证书对SEO效果的积极影响

搜索引擎优化&#xff08;SEO&#xff09;作为提升网站可见度和吸引有机流量的关键策略&#xff0c;其规则与标准也在不断进化以适应这些变化。其中&#xff0c;安装SSL证书对SEO效果产生的正面影响尤为显著。以下是关于安装SSL证书如何促进SEO效果的详细分析。 一、搜索引擎的…...

JAVA 项目<果园之窗>_完结

目录 1、前言&#xff1a;2、视频展示&#xff1a;3、环境配置&#xff1a;4、工程代码&#xff1a;5、原理&#xff1a;6、原理补充&#xff1a;7、综上&#xff1a; 1、前言&#xff1a; 因为没有足够的时间这个项目用的是别人搭好的框架&#xff0c;在此基础上做调整并根据前…...

Vue + Vite + Axios 项目多环境以及部署前后端跨域

最近在前端多环境和部署服务器之后出现的跨域的问题。 多环境 前端多环境 Vite Axios 1.首先在项目目录下定义多环境的文件。 这里列举开发环境和发布环境 .env.development 环境 # 开发时加载// 此处为开发时接口 VITE_API_URL http://localhost:8080/api.env producti…...

Nginx+GateWay

目录 Nginx nginx如何配置负载均衡 负载均衡有哪些策略 1、轮询&#xff08;默认&#xff09; 2、指定权重 3、ip_hash&#xff08;客户端ip绑定&#xff09; 4、least_conn&#xff08;最少连接&#xff09; 5、fair 6、url_hash Nginx为什么效率高 gateway 使用gat…...

React中间件的概念以及常用的实现

在 React 中&#xff0c;中间件&#xff08;Middleware&#xff09;是一种在组件之间进行处理的机制&#xff0c;它允许你在组件渲染过程中注入一些逻辑、功能或者处理过程。中间件通常被用于在组件渲染前后执行一些操作&#xff0c;比如日志记录、权限验证、状态管理等。常用的…...

如何对团队成员进行六西格玛管理的培训?

在现代企业中&#xff0c;六西格玛管理已成为提升产品质量、减少浪费、提高生产效率的重要工具。然而&#xff0c;要想充分发挥六西格玛管理的优势&#xff0c;必须拥有一支熟练掌握这一方法的团队。因此&#xff0c;对团队成员进行六西格玛管理培训至关重要。具体步骤如深圳天…...

Zibll 子比文章标题加上渐变彩色文字

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、配置方式二、使用步骤1.引入库前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍…...

C/C++ StringToAddress(字符串转 boost::asio::ip::address)

为什么不推荐 boost::asio::ip::address::from_string、boost::asio::ip::address::make_string 函数来把字符串转换为 ip 地址呢&#xff1f; 这是因为有平台、编译器兼容性&#xff0c;在 android 平台上面&#xff0c;使用这两个函数会导致崩溃问题&#xff0c;在一些 clang…...

【玩转Google云】构建安全高效的电商系统:GCP VPC 网络规划指南

在竞争激烈的电商领域,一个安全、高效且可扩展的网络基础架构至关重要。本文将深入探讨 Google Cloud Platform (GCP) 的 Virtual Private Cloud (VPC) 如何助力构建理想的电商系统。通过以一个典型的电商网站为例,我们将逐步解析 VPC 网络规划的关键步骤,包括子网划分、防火…...

【YOLO改进】换遍MMDET主干网络之Pyramid Vision Transformerv2(PVTv2)(基于MMYOLO)

Pyramid Vision Transformer v2&#xff08;PVTv2&#xff09; Pyramid Vision Transformer v2&#xff08;PVTv2&#xff09;是在PVTv1的基础上进行改进的一种深度学习模型&#xff0c;它同样结合了Transformer架构和金字塔结构&#xff0c;旨在提供更强大的特征表示和更好的…...

【漏洞复现】RuvarOA协同办公平台 WorkFlow接口处存在SQL注入

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…...

Kubelet containerd 管理命令 ctr常用操作

镜像常用操作 1. 拉取镜像 ctr images pull docker.io/library/nginx:alpine 指定平台 --all-platforms&#xff1a;所有平台&#xff08;amd64 、arm、386 、ppc64le 等&#xff09;&#xff0c;不加的话下载当前平台架构 --platform&#xff1a;指定linux/amd64平台 ctr …...

求一个B站屏蔽竖屏视频的脚本

求一个B站屏蔽竖屏视频的脚本 现在B站竖屏竖屏越来越多了&#xff0c;手机还好点给我一个按钮&#xff0c;选择不喜欢&#xff0c;但是我一般都用网页版看视屏&#xff0c;网页版不给我选择不喜欢的按钮&#xff0c;目测大概1/4到1/3的视频都是竖屏视频。 目前网页版唯一的进…...

用Github+HUGO搭建博客的经验教训

1. 创建两个Github仓库 一个是博客源仓库&#xff08;private&#xff09;&#xff0c;用于储存所有博客源文件&#xff08;Markdown文件和图片文件等&#xff09;。 另一个是GitHub Pages仓库&#xff08;public&#xff09;&#xff0c;用于储存由 Hugo 从Markdown 文件生成的…...

MongoDB4.4操作命令

show dbs; // 显示所有数据的列表use mvx; //如果数据库不存在&#xff0c;则创建数据库&#xff0c;否则切换到指定数据库。db; // 查看当前数据库 db.mvx.insertOne({username: root}); // 插入数据 当你插入一些文档时&#xff0c;MongoDB 会自动创建集 db.dropDatabase(); …...

共享旅游革命:千益畅行卡的优势揭秘

在共享经济的快速发展中&#xff0c;共享旅游创业已成为许多创新者和投资者关注的重点。特别是千益畅行&#xff0c;作为共享旅游行业的新秀&#xff0c;其商业模型和经营策略引起了市场的高度讨论。然而&#xff0c;对于这个公司是否仅仅是新一轮的市场“收割者”&#xff0c;…...

【doghead】mac: clion2024.1启动崩溃

doghead 是在mac 下跑各种数据的因此&#xff0c;在配置了环境后, 进行mac 构建 【doghead】mac构建&#xff0c;首先对mac的clion进行安装 mac 下安装clion2024.1 之前可能装过crack的clion教育优惠的clion跟之前的应该不同clion2024.1 在mac的新系统下崩溃google下竟然没有…...

企业合规视角下的菜鸟网络与拼多多不正当竞争案

近日&#xff0c;浙江省高院对备受瞩目的“菜鸟网络诉拼多多不正当竞争案”做出终审判决。该案件从2022年初发酵至今&#xff0c;终于以法院驳回拼多多上诉、维持一审判决而告一段落。此案不仅在法律层面引起广泛关注&#xff0c;更在企业合规方面提供了重要的案例参考。 根据判…...

如何在Java中处理日期和时间?介绍Java 8中的时间API

在 Java 中处理日期和时间&#xff0c;您可以使用 Java 8 引入的新的日期时间 API&#xff0c;也被称为 JSR-310&#xff0c;位于 java.time 包中。这个新的 API 解决了旧的 java.util.Date 类和 java.util.Calendar 类的线程安全和设计问题&#xff0c;并提供了一组丰富的工具…...

24数维杯ABC题思路已更新!!!!

24数维杯A题保姆级思路&#xff0b;配套代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710639/ 24数维杯B题保姆级思路&#xff0b;可执行代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710640/ 24数维杯C题保姆级思路&#xff0b;可执…...

Fastapi+docker+tortoise-orm+celery

因为项目是后期引入celery,所以导致构建docker的时候只有fastapi的项目&#xff0c;celery的重启比较麻烦 1.docker安装celery pip install celery安装celery的时候注意python版本与celery版本的适配&#xff0c;有些celery的版本不支持python的版本&#xff0c;具体的版本请看…...

springBoot笔记五(pom.xml\yml)

1-pom.xml里的start表示会安装已经设置好的相关版本的依赖&#xff0c;起步依赖。 2-optional设置为ture&#xff0c;显示可选择的依赖 3-修改端口server.port9999 4-yml文件书写 &#xff08;1&#xff09;空格代表分级&#xff0c;值前面要写空格 &#xff08;2&#xff09;-…...

三生随记——耳机里的诅咒

深夜&#xff0c;城市的灯火已经渐渐熄灭&#xff0c;只剩下一轮明月孤独地悬挂在天空中&#xff0c;洒下银白色的光芒。在这样一个寂静的夜晚&#xff0c;李浩独自一人坐在昏暗的房间里&#xff0c;耳机紧紧贴在耳边&#xff0c;他正在观看一部知名的恐怖电影。 电影里的恐怖情…...

嵌入式学习<2>:EXTI、ADC、NVIC和AFIO

嵌入式学习_part2 本部分笔记用于学习记录&#xff0c;笔记源头 >>b站江科大_STM32入门教程_EXTI EXTI、ADC、NVIC和AFIO 开发环境&#xff1a;keil MDK、STM32F103C8T6 1 &#xff09;EXTI STM32F10xxx参考手册&#xff08;中文&#xff09;-> 中断与事件 ->…...

Nginx - server、listen、server_name和多服务请求处理(三)

server 上下文 server { }server指令用于配置一个虚拟服务。listen指令描述了本服务可接受链接的所有地址和端口&#xff0c;server_name指令列举了所有服务的名字&#xff0c;例如 server {listen 80;server_name example.org www.example.org; }listen 指令 Syntax: …...

C语言/数据结构——(相交链表)

一.前言 今天在力扣上刷到了一道题&#xff0c;想着和大家一起分享一下这道题——相交链表https://leetcode.cn/problems/intersection-of-two-linked-lists废话不多说&#xff0c;让我们开始今天的分享吧。 二.正文 1.1题目描述 是不是感觉好长&#xff0c;我也这么觉得。哈…...

【二叉树算法题记录】二叉树的所有路径,路径总和——回溯

目录 257. 二叉树的所有路径题目描述题目分析cpp代码 112. 路径总和题目描述题目分析cpp代码 257. 二叉树的所有路径 题目描述 给你一个二叉树的根节点root &#xff0c;按任意顺序&#xff0c;返回所有从根节点到叶子节点的路径。 题目分析 其实从根节点往下走&#xff0c…...

verilog基础语法之数据类型

verilog基础语法之数据类型 1、 wire类型2、 reg类型3、向量 Verilog最常用的数据类型有两种&#xff1a;线网&#xff08;wire&#xff09;和寄存器&#xff08;reg&#xff09;。其中&#xff0c;wire 类型表示硬件单元之间的物理连线&#xff0c;reg用来表示存储单元。 1、…...