NOIP-2023模拟题

全国青少年信息学奥林匹克竞赛

NOIP2023模拟

时间:8:00-12:30
题目名称 异或 游戏 连通块 公交路线
题目类型 传统型 传统型 传统型 传统型
目录 xor \text{xor} xor game \text{game} game connect \text{connect} connect route \text{route} route
可执行文件名 xor \text{xor} xor game \text{game} game connect \text{connect} connect route \text{route} route
输入文件名 xor.in \text{xor.in} xor.in game.in \text{game.in} game.in connect.in \text{connect.in} connect.in route.in \text{route.in} route.in
输出文件名 xor.out \text{xor.out} xor.out game.out \text{game.out} game.out connect.out \text{connect.out} connect.out route \text{route} route
每个测试点时限 $ 1.0$秒 $ 1.0$秒 2.0 2.0 2.0 1.0 1.0 1.0
内存限制 512 MB \text{512 MB} 512 MB 512 MB \text{512 MB} 512 MB 512 MB \text{512 MB} 512 MB 512MB \text{512MB} 512MB
子任务数目 10 \text{10} 10 20 \text{20} 20 25 \text{25} 25 20 \text{20} 20
测试点是否等分
提交源程序文件名
对于C++语言 xor.cpp \text{xor.cpp} xor.cpp game.cpp \text{game.cpp} game.cpp connect.cpp \text{connect.cpp} connect.cpp route.cpp \text{route.cpp} route.cpp
编译选项
对于C++语言 -lm -std=c++14 -O2 \text{-lm -std=c++14 -O2} -lm -std=c++14 -O2
注意事项与提醒(请选手务必仔细阅读)

1 1 1. 选手提交的源程序必须存放在已建立好的,且带有样例文件和下发文件的文件夹中,文件夹名称与对应试题英文名一致。
2 2 2. 文件名(包括程序名和输入输出文件名)必须使用英文小写。
3. 3. 3. C++ \text{C++} C++ 中函数 main() \text{main()} main() 的返回值类型必须是 int \text{int} int, 值必须为 0 0 0
4 4 4. 对于因未遵守以上规则对成绩造成的影响,相关申诉不予受理
5 5 5. 若无特殊说明,结果比较方式为忽略行末空格、文末回车后的全文比较
6 6 6. 程序可使用的栈空间大小与该题内存空间限制一致。
7 7 7. 在终端中执行命令 ulimit -s unlimited \text{ulimit\ -s\ unlimited} ulimit -s unlimited 可将当前终端下的栈空间限制放大,但你使用的栈空间大小不应超过题目限制。
8 8 8. 每道题目所提交的代码文件大小限制为 100KB \text{100KB} 100KB
9 9 9. 若无特殊说明,输入文件与输出文件中同一行的相邻整数均使用一个空格分隔。
10 10 10. 输入文件中可能存在行末空格,请选手使用更完善的读入方式(例如 scanf \text{scanf} scanf 函数)避免出错。
11 11 11. 直接复制 PDF \text{PDF} PDF 题面中的多行样例,数据将带有行号,建议选手直接使用对应目录下的样例文件进行测试。
12 12 12. 使用 std:deque \text{std:deque} std:deque STL \text{STL} STL 容器时,请注意其内存空间消耗。
13 13 13. 请务必使用题面中规定的的编译参数,保证你的程序在本机能够通过编译。此外不允许在程序中手动开启其他编译选项,一经发现, 本题成绩以 0 0 0 分处理。

异或(xor)

【问题描述】

​ 考虑一个 n ∗ n n*n nn 的矩阵 A A A,初始所有元素均为 0 0 0

​ 执行 q q q 次如下形式的操作:给定 4 4 4 个整数 r , c , l , s r,c,l,s r,c,l,s ,对于每个满足 x ∈ [ r , r + l ) , x \in[r,r+l), x[r,r+l), $ y\in[c,x-r+c]$ 的元素 ( x , y ) (x,y) (x,y) ,将权值增加 s s s 。也就是,给一个左上顶点为 ( r , c ) (r,c) (r,c) 、直角边长为 l l l 的下三角区域加上 s s s

​ 输出最终矩阵的元素异或和。

【输入格式】

​ 第一行两个整数 n , q n,q n,q

​ 接下来 q q q 行,每行四个整数 r , c , l , s r,c,l,s r,c,l,s,代表一次操作。

【输出格式】

​ 输出一行,一个整数,代表答案。

【样例输入1】
10 4
1 1 10 1
5 5 4 4
1 9 4 3
3 3 5 2
【样例输出1】
0
【样例解释1】

​ 1 0 0 0 0 0 0 0 3 0
​ 1 1 0 0 0 0 0 0 3 3
​ 1 1 3 0 0 0 0 0 3 3
​ 1 1 3 3 0 0 0 0 3 3
​ 1 1 3 3 7 0 0 0 0 0
​ 1 1 3 3 7 7 0 0 0 0
​ 1 1 3 3 7 7 7 0 0 0
​ 1 1 1 1 5 5 5 5 0 0
​ 1 1 1 1 1 1 1 1 1 0
​ 1 1 1 1 1 1 1 1 1 1

【样例2】

​ 见下发文件中。

【数据范围及约定】

​ 保证 n ∈ [ 1 , 1 0 3 ] , q ∈ [ 0 , 3 ∗ 1 0 5 ] , r , c , l ∈ [ 1 , n ] , s ∈ [ 1 , 1 0 9 ] 。 n\in[1,10^3],q\in[0,3*10^5],r,c,l\in[1,n],s\in[1,10^9]。 n[1,103]q[0,3105]r,c,l[1,n],s[1,109]

子任务编号 n ≤ n\le n q ≤ q\le q 其他限制 分值
1 1 1 1 0 3 10^3 103 0 0 0 5 5 5
2 2 2 3 ∗ 1 0 2 3*10^2 3102 4 ∗ 1 0 2 4*10^2 4102 20 20 20
3 3 3 1 0 3 10^3 103 2 ∗ 1 0 3 2*10^3 2103 25 25 25
4 4 4 1 0 3 10^3 103 3 ∗ 1 0 5 3*10^5 3105 保证 r + l = n + 1 且 c = 1 保证r+l=n+1且c=1 保证r+l=n+1c=1 15 15 15
5 5 5 1 0 3 10^3 103 3 ∗ 1 0 5 3*10^5 3105 保证 r + l = n + 1 保证r+l=n+1 保证r+l=n+1 15 15 15
6 6 6 1 0 3 10^3 103 3 ∗ 1 0 5 3*10^5 3105 20 20 20

游戏(game)

【问题描述】

Alice \text{Alice} Alice Bob \text{Bob} Bob 又在一起在玩游戏,这次游戏的规则是:

1 1 1. Alice \text{Alice} Alice 先手, Bob \text{Bob} Bob 后手,轮流进行操作,共有 m m m 轮操作,有一个集合初始为 S = { a 1 , a 2 , . . . , a n } S=\{a_1,a_2,...,a_n\} S={ a1,a2,...,an}
2 2 2. 第 i i i 轮操作有一个参数 b i b_i bi,当前轮的操作者有以下两个选择:保留 S S S 中所有是 b i b_i bi 倍数的数字,或者保留 S S S 中所有不是 b i b_i bi 倍数的数字。
3 3 3. 进行了 m m m 轮操作后两人获得的权值是 S S S 中的数字之和, S S S 可以为空。

Alice \text{Alice} Alice 希望权值最小, Bob \text{Bob} Bob 希望权值最大,假设他们都足够聪明,那么游戏最终的权值是多少。

【输入格式】

​ 第一行两个整数 n , m n,m n,m,表示集合大小和操作轮数。

​ 第二行 n n n 个整数 a i a_i ai,表示初始集合。

​ 第三行 m m m 个整数 b i b_i bi,为第 i i i 轮的参数。

【输出格式】

​ 输出一个数表示博弈的结果。

【样例输入1】
10 3
13 -6 -9 -8 11 5 -4 -9 -4  -7
2 3 3
【样例输出1】
-6
【样例2】

​ 见选手目录下的下发文件中。

【数据范围及约定】

​ 对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 2 × 1 0 4 , 1 ≤ m ≤ 2 × 1 0 5 , − 4 × 1 0 14 ≤ a i ≤ 4 × 1 0 14 , 1≤n≤2×10^4, 1≤m≤2×10^5, -4×10^{14}≤a_i≤4×10 ^{14}, 1n2×104,1m2×105,4×1014ai4×1014, 1 ≤ b i ≤ 4 × 1 0 14 1≤b_i≤4×10^{14} 1bi4×1014

子任务编号 m ≤ m\le m 特殊性质 分值
1 1 1 1 1 1 10 10 10
2 2 2 2 × 1 0 5 2\times 10^5 2×105 ∀ i < m , b i = b i + 1 \forall i<m,b_i=b_{i+1} i<m,bi=bi+1 10 10 10
3 3 3 2 × 1 0 5 2\times 10^5 2×105 ∀ i < m , b i + 1   m o d   b i = 0 \forall i<m,b_{i+1}\ mod\ b_i=0 i<m,bi+1 mod bi=0 15 15 15
4 4 4 7 7 7 10 10 10
5 5 5 20 20 20 15 15 15
6 6 6 100 100 100 15 15 15
7 7 7 2 × 1 0 5 2\times 10^5 2×105 m   m o d   2 = 0 , ∀ i ≤ m 2 , b 2 i − 1 = b 2 i m\ mod\ 2=0,\forall i\le \frac{m}{2},b_{2i-1}=b_{2i} m mod 2=0,i2m,b2i1=b2i 15 15 15
8 8 8 2 × 1 0 5 2\times 10^5 2×105 10 10 10

连通块(connect)

【问题描述】

​ 小 X \text{X} X 有一张 n n n 个节点的图,每个节点有一个点权。但让 小 X \text{X} X 感到生气的是,这张图上并没有任何的边,于是他决定钦点一些边。

​ 小 X \text{X} X 喜欢 g c d gcd gcd 和合数,所以 小 X \text{X} X 的钦点规则与 g c d gcd gcd(最大公约数)和合数有关。具体来说,对于 2 2 2 个点,如果它们点权的 g c d gcd gcd 为合数,那么 小 X \text{X} X 就会钦点它们之间连一条边。

​ 小 Y \text{Y} Y 看到了 小 X \text{X} X 稚的行为,决定把他批判一番。他知道 小 X \text{X} X 热衷于连通块,因此他会删掉图中的一个点来使得剩余图中最大的连通块最小。

​ 即将参加 NOIP2023 \text{NOIP2023} NOIP2023 的你对这个问题很感兴趣,于是你想知道,在 小 Y \text{Y} Y 操作之后,图中剩余的最大连通块的大小是多少。

【输入格式】

​ 本题有多组数据。

​ 第一行一个整数 T T T 表示数据组数。接下来依次描述各组数据,对于每组数据:

​ 第一行 1 1 1 个正整数 n n n,表示节点的个数。

​ 第二行 n n n 个用空格隔开的正整数,依次描述了 1 1 1 号节点到 n n n 号节点的点权 a 1 . . . a n a_1 . . . a_n a1...an

【输出格式】

​ 对于每组数据,输出一行一个整数,表示答案。

【样例输入1】
3
5
8 4 12 18 9
5
36 20 84 45 231
7
100 200 300 400 500 600 700
【样例输出1】
2
3
6
【样例2】

​ 见下发文件中。

【数据范围及约定】

​ 对于 16 % 16\% 16% 的数据,保证 n ≤ 300 n \le 300 n300,其中 8 % 8\% 8% 的数据保证 a i ≤ 2 , 000 a_i \le 2, 000 ai2,000

​ 对于 40 % 40\% 40% 的数据,保证 n ≤ 5 , 000 n \le 5, 000 n5,000,其中 20 % 20\% 20% 的数据保证 a i ≤ 30 , 000 a_i \le 30, 000 ai30,000

​ 对于 100 % 100\% 100% 的数据,保证 n ≤ 1 0 5 , a i ≤ 1 0 7 n \le 10^5,a_i \le 10^7 n105ai107,其中 52 % 52\% 52% 的数据保证 a i ≤ 1 0 5 a_i \le 10^5 ai105

​ 对于 100 % 100\% 100% 的数据,保证 T ≤ 10 , n ≥ 2 , a i ≥ 2 T \le 10,n \ge 2,a_i \ge 2 T10n2ai2

公交路线(route)

【问题描述】

​ A 城是一座新兴城市,城里开设了 n n n 座工厂,分属 k k k 家单位(有的单位可能没有工厂),其中第 i i i 座工厂属于第 c i c_i ci 家单位。

​ 目前,A城的城内有 n − 1 n-1 n1 条道路,每条道路的两端是不同的工厂。如果将工厂视作图的点,道路视作图的边,那么这张图是树。

​ 现在A城决定开通该城的前两条公交线路。目前已经决定了:

∙ \bullet 每条公交线路将连接两座不同的工厂,且两座工厂属于同一单位。

∙ \bullet 每条公交线路在现有道路上行驶,且往返的路线是一致的。

∙ \bullet 一条公交线路不会重复经过同一座工厂,两条线路也不会经过同一座工厂。

​ 我们认为:仅仅将某条公交线路的上行、下行方向互换,得到的是本质相同的线路;将两条公交线路互换,得到的也是本质相同的一组方案。

​ 在公交线路的运行过程中,有可能某座工厂由于临时施工,不适合作为公交线路的首末站。不过两座工厂不会同时临时施工。

​ 现在,A城学生算法竞赛协会悬赏 100 100 100 分,请你对于平时和 m m m 次工厂临时施工的情况,分别求出开通公交线路的方案数。

【输入格式】

​ 第一行三个正整数 n , m , k n, m, k n,m,k

​ 第二行 n n n 个数 c i c_i ci 表示工厂所属的单位。

​ 接下来 n − 1 n - 1 n1 行每行两个数 a i , b i a_i, b_i ai,bi, 表示有一条道路连接第 a i , b i a_i, b_i ai,bi 座工厂。

​ 接下来 m m m 行每行一个数 k i k_i ki,表示第 i i i 次是第 q i q_i qi 座工厂临时施工。

【输出格式】

​ 第一行表示平时情况的方案数。

​ 接下来 m m m 行分别表示各次询问情况下的方案数。

【样例输入1】
6 6 2
2 1 2 1 2 2
1 2
1 3
2 4
2 5
2 6
1
2
3
4
5
6
【样例输出1】
2
0
1
0
1
1
1
【样例2】

​ 见下发文件中。

【数据范围及约定】

​ 对于所有数据, m ≤ n ≤ 1 0 5 , c i ≤ k ≤ n m ≤ n ≤ 10^5, c_i ≤ k ≤ n mn105,cikn

测试点编号 n ≤ n\le n 数据性质
1 , 2 1,2 1,2 50 50 50
3 3 3 1 0 3 10^3 103 k = 1 k=1 k=1
4 4 4 1 0 4 10^4 104 k = 1 k=1 k=1
5 5 5 1 0 4 10^4 104 k = 1 , m ≤ 10 k=1,m\le 10 k=1,m10
6 6 6 1 0 3 10^3 103 m = 1 m=1 m=1
7 , 8 7,8 7,8 1 0 4 10^4 104 m = 1 m=1 m=1
9 , 10 9,10 9,10 1 0 4 10^4 104 k = 2 , m ≤ 10 k=2,m\le 10 k=2,m10
11 , 12 11,12 11,12 1 0 5 10^5 105 k = 2 k=2 k=2
13 , 14 13,14 13,14 1 0 4 10^4 104 c q i c_{q_i} cqi 互不相同
15 , 16 15,16 15,16 1 0 5 10^5 105 c q i c_{q_i} cqi 互不相同
17 , 18 , 19 , 20 17,18,19,20 17,18,19,20 1 0 5 10^5 105

猜你喜欢

转载自blog.csdn.net/DUXS11/article/details/133612577