版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
title: Namomo Spring Camp 2022 Div1 每日一题记录 (Week 9) categories:
Namomo Spring Camp 2022 Div1 每日一题记录 (2022.04.23-2022.04.29)
<!-- more -->3 s, 512 MB
$n$ - $1$ 个点, 从 $2$ 到 $n$, 点 $a$ 与点 $b$ 的边权为 $lcm(a,b)$,求出 $n-1$ 个点的最小生成树
第一行一个数字 $T$
接下来 $T$ 行 $1$ 个整数 $n$
一个数, 表示答案
2
2
6
0
26
所有数据保证 $T\le 100 , 2\le n \le 1e7 $
1 s, 1024 MB
小琪非常喜欢数列, 因此她出了一道数列问题
有两个整数 $d,m$ , 找到这样的数列 $a$, 满足如下条件
请你求出满足条件的数列有多少个? 由于结果较大, 请输出答案模 $m$ 的结果
第一行一个数字 $\quad t \quad (1 \le t \le 100)$ , 表示测试数据数
接下来 $t$ 行, 每行 $2$ 个整数 $\quad d, m \quad (1 \le d, m \le 10^9)$
注意: $m$ 不一定是质数
输出包括 $t$ 行, 每行一个整数表示答案
3
5 999996
6 99995
7 9994
17
23
29
所有数据保证 $1\leq t \leq 100, 1 \leq d,m \leq 10^9$
1 s, 1024 MB
$X$ 坐标轴上有 $N$ 个钥匙和 $N$ 个宝箱, 玩家初始位置为 $x = 0$, 每一步可以走到 $x + 1$ 或者 $x - 1$
当玩家到达一个有钥匙的位置时, 他可以将钥匙捡起. 当玩家到达一个有宝箱的位置时, 他可以选择使用一个钥匙将宝箱打开
试求出玩家最少需要走多少步才能打开所有宝箱
注: 同一个位置可以同时出现宝箱和钥匙, 但同一位置不会出现超过一个宝箱或超过一个钥匙
第一行一个正整数 $N$, 表示宝箱和钥匙的个数
接下来一行 $N$ 个正整数 $b_1, b_2, ... , b_n$. 其中 $b_i$ 表示宝箱 $i$ 的位置
第三行 $N$ 个正整数 $c_1, c_2, ... , c_n$. 其中 $c_i$ 表示钥匙 $i$ 的位置
一行一个正整数, 表示答案
对于所有数据, 满足 $1 \leq N \leq 10^5$, $1 \leq b_i, c_i \leq 10^9$. 且保证 $b_1 < b_2 < ... < b_n$. $c_1 < c_2 < ... < c_n$
4
1 6 7 12
3 5 10 11
21
2
1 2
1 1000000000
1999999998
2 s, 1024 MB
给定一张 $n$ 个点 $m$ 条边的无向图, 每条边有一个权值, 定义瓶颈路权值为某一条从点 $i$ 到 $j$ 的路径上的最大权值, 有 $q$ 个询问, 每次询问给出两个点 $(s,t)$, 求从 $s$ 到 $t$ 的最小瓶颈路权值
保证图联通
第一行包含两个正整数 $n(1\leq n\le 10^5)$ 和 $m (1\leq m\leq \min(10^6, \frac{n \times (n-1)}{2})$, 表示点数和边数
第二行到第 $m+1$ 行包含三个整数 $x,y,d(0\leq d\leq 10^9)$, 表示 $x$ 和 $y$ 之间连有一条权值为 $d$ 的无向边
第 $m+2$ 包含一个正整数 $q(1\leq q\leq 10^6)$, 表示询问的次数, 后面 $q$ 行每行两个正整数 $s,t(1\leq s, t\leq n)$, 分别表示起点和终点
对于每次询问, 每行输出一个整数, 表示最小的瓶颈路权值
注意: 由于本道题输入输出规模过大, 请注意 IO 优化
2 1
1 2 10
1
1 2
10
1 s, 128 MB
有编号从 $1$ 开始的 $n$ 个房间, 有一只老鼠将会出现在某个房间中
当老鼠在某一时刻位于房间 $i$ $(1 \leq i \leq n)$ 时, 它将在下一时刻抵达房间 $p_i$ (如果 $i = p_i$ 则代表老鼠不会离开 $i$ 房间)
已知在第 $i$ 个房间布置捕鼠夹的价格是 $w_i$, 求最少需要花费多少能够使得无论老鼠从哪个房间出现, 都会抵达有老鼠夹的房间
第一行输入一个整数 $n$ $(1 \leq n \leq 200000)$
第二行输入 $n$ 个整数 $w_i$ $(1 \leq w_i \leq 10000)$ 为在第 $i$ 个房间布置捕鼠夹的成本
第三行输入 $n$ 个整数 $p_i$ $(1 \leq p_i \leq n)$ 为在 $i$ 房间的老鼠即将抵达的房间编号
输出一个整数, 为满足条件的最小花费
5
1 2 3 2 10
1 3 4 3 3
3
4
1 10 2 10
2 4 2 2
10
7
1 1 1 1 1 1 1
2 2 2 3 6 7 6
2
在第一组样例里可以选择房间 1 和房间 4 布置捕鼠夹. 如果老鼠从房间 1 出现, 则会被房间 1 的捕鼠夹捕获, 否则会被房间 4 的捕鼠夹捕获
在第二组样例里可以在房间 2 布置捕鼠夹, 老鼠从任意房间出现, 都会被房间 2 的捕鼠夹捕获
这是第三组样例中老鼠可能的行动轨迹:
1→2→2→…;
2→2→…;
3→2→2→…;
4→3→2→2→…;
5→6→7→6→…;
6→7→6→…;
7→6→7→…;
所以可以在房间 2 和房间 6 布置捕鼠夹
1 s, 1024 MB
给定一个左下角位于 $(0 , 0)$ 右上角位于 $(n , m)$ 的矩形 , 矩形的四条边都与坐标轴平行 , 你需要将它划分成尽可能多的块数
划分的规则如下:
输出最多可以划分多少块
第一行两个整数 $n,m$ , 含义如题面所示. $(1 \leq n , m \leq 10^9)$
第二行两个整数 $x , y$ , 表示有 $x$ 对位于左右边界的点和 $y$ 对位于上下边界的点. $(1 \leq x \leq min(m + 1 , 10^5) , 1 \leq y \leq min(n + 1,10^5))$
接下来 $x$ 行 , 每行两个整数 $a , b$ 分别表示位于左边界和右边界的点的纵坐标. $(0 \leq a , b \leq m)$
接下来 $y$ 行 , 每行两个整数 $c , d$ 分别表示位于下边界和上边界的点的横坐标. $(0 \leq c , d \leq n)$
输出一行一个整数 , 表示最大的划分块数
3 4
3 2
1 2
2 1
3 3
1 1
2 2
13
按照上图的划分方式可以得到最多的块数 , 13 块
1 s, 1024 MB
给定一个大小为 $n$ 的集合 ${S}$, 你可以从中挑选若干个数组成等差数列, 求最长的等差数列长度
一行一个整数 $n\leq 5000$
接下来一行 $n$ 个整数 $|S_i| < {2^{31}} $, 描述集合 ${S}$ 中的元素
一行一个整数, 描述最长的等差数列的长度
10
14 1 3 5 6 8 9 10 12 13
5
等差数列包括(仅包括两项的不列举)
1 3 5
1 5 9 13
3 6 9 12
3 8 13
5 9 13
6 8 10 12 14
其中6 8 10 12 14
最长, 长度为 5