• 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
    • 2
    • 3
    • 4
    • 5
    【样例输出1】
    0
    
    • 1
    【样例解释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
    • 2
    • 3
    【样例输出1】
    -6
    
    • 1
    【样例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 ii<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 ii<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
    • 4
    • 5
    • 6
    • 7
    【样例输出1】
    2
    3
    6
    
    • 1
    • 2
    • 3
    【样例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
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    【样例输出1】
    2
    0
    1
    0
    1
    1
    1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    【样例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
  • 相关阅读:
    一文读懂:为什么GPU比CPU更快?
    升讯威在线客服系统是如何实现对 IE8 完全完美支持的(怎样从 WebSocket 降级到 Http)【干货】
    唐高宗封后武则天,是家谱维护门第失败的转折事件
    建站百科:HTTP返回状态码是什么?
    [动态规划简单题] LeetCode 53. 最大子数组和
    C语言,从联合看字节序
    Android泛型详解
    【Qt】Qt界面美化指南:深入理解QSS样式表的应用与实践
    C++实现有理数类 四则运算和输入输出
    Java测试复盘05
  • 原文地址:https://blog.csdn.net/DUXS11/article/details/133612577