GJ Round (2024.9) Round 1~7
前言:
洛谷、博客园、CSDN 同步更新
点此 返回 GJ Round 目录(博客园)
博客园 可能食用更佳
Tip:博客园不等号渲染有问题,就像这样:
\neq
Round 1 (9.10)
A
洛谷 P10059 Choose
给定一个长度为
n 的序列a ,你需要选出a 的k 个长度均为L(1 \leq L \leq n-k+1) 的不同连续子序列C(a,l_1,l_1+L-1),C(a,l_2,l_2+L-1),\dots,C(a,l_k,l_k+L-1) ,其中1 \leq l_1 < l_2 < \dots < l_k \leq n-L+1 记这
k 个子序列中极差的最小值为X ,你需要求出X 的最大值。同时,你还需要求出,在满足X 最大的情况下L 的最小值。
不难发现结论:记长度为
那么就可以考虑使用二分求出最小的
时间复杂度
到这里可能需要卡卡常才能过,其实还有更优的时间复杂度
瓶颈在求
不难发现,当左端点固定,右端点从左到右移动时,
将左端点排序后,右端点具有单调性,那么可以考虑使用单调队列+双指针求解,因为每次都是连续的区间,故可以考虑使用差分数组辅助统计,最后再累加前缀和即可
时间复杂度
B
对于一个
01 串x ,将任意一个非空子串反转,称为一次操作定义
x 的权值为使得x 满足01 交替的最少次数,多次询问,给定l,r ,求出s 的字串\overline{s_l s_{l+1} \dots s_r} 的所有非空子序列的权值之和,答案对10^9+7 取模
咕咕咕
C
有
n 个点,第i 个点权值为w_i ,其中仅s 点为黑色,其余点为白色,每次可以花费p_i 的代价将点i 的颜色转换为点a_i 的颜色求最终所有黑色点的点权减去总花费代价的最大值
咕咕咕
Round 2 (9.12)
A
形式化题意:给定两个长度分别为
n,m 的0,1 序列a,b 定义
c_{i,j}=a_i \times b_j ,问c 矩阵中有多少个子矩形满足其中1 的个数恰好为k
题目显然是问:有多少种方案,使得在
考虑分别记录
时间复杂度(记
B
由于能源不足,$B$ 国的第 $í$ 条道路只能正常运行 $d_i$ 个时刻。现在云浅需要给每一条道路选择一个开始运行的时间 $s_i$,那么这条道路就会在 $[s_i,s_i+d_i-1]$ 这些时刻内正常运行。保证 $d_i \geq 1 随着 $B$ 国的发展,现在 $B$ 国已经可以对道路进行有限的能源扩充。具体地,大守护者可以给第 $i$ 条道路扩充 $a_i$ 个单位的能源,使得其最大运行时间 $d_i$ 增大为 $d_i+a_i$。由于能源有限,$a_1+a_2+\dots+a_m$ 的值不能超过给定的正整数 $L$。大守护者想让你协助她找到一种扩充能源的方案 $a_1,a_2,\dots,a_m$,使得在扩充能源后,可能的最大连通度尽可能大。你只需要输出可能的最大连通度即可。
观察到题目给出的条件
不难发现,在树上的时候,所能得到的最大连通度为其最小的边权,在环上时,所得到的的最大连通度为其最小与次小的边权之和
那么,我们可以考虑二分答案,check 函数里面补齐边权小于
预处理找环用 dfs 即可,时间复杂度 long long 即可
C
Yoimiya 有一个
n 个点的有向图,对每个1 \leq i \leq n ,图中都存在一条有向边i \to i+1 。此外,Yoimiya 从这
n 个点中选出了若干个点构成了一个集合S ,然后对于S 中的任意两个元素x,y 满足x<y ,她在图中新加了一条边x \to y 。现在云浅会选出一个
1,2,\dots,n 的排列p ,对于这个排列,云浅会构建一个长为n 的序列w ,其中w_i 的值为:如果删掉图中的p_1,p_2,\dots,p_{i-1} 这些点以及和它们相邻的所有连边,当前图中满足x<y ,且x 能够只通过此时剩下的点和边到达y 的点对(x,y) 的个数。对于排列
p ,云浅定义f(p) 为其对应的w_1,w_2,\dots,w_n 之和。现在云浅想要求出所有排列p 的f(p) 之和对998244353 取模的值。
咕咕咕
D
对于正整数
n ,Elysia 定义f(n) 为:将n 在十进制下的每一位取出,并分成两个集合S,T ,使得每个数位恰好被分在S,T 中的一个里,要求最小化S 中元素的和与T 中元素的和之差。例如,
f(123)=0 ,最优方案是取S=\lbrace 1,2 \rbrace,T=\lbrace 3\rbrace ;f(1235)=1 ,最优方案是取S=\lbrace 1,5 \rbrace,T=\lbrace 2,3 \rbrace 。现在 Elysia 给了你
Q 次问,每次问给出l,r,k ,你需要输出有多少个正整数x 满足l \leq x \leq r ,且f(x) \leq k 。
咕咕咕
Round 3 (9.18)
A
下面给出一些定义:
- 对于一个长度为
k 的序列,f(a)=\sum_{i=1}^{k} [a_i=i] 给定一个长度为
n 的序列A ,求A 的所有非空子序列S 的f(sort(S)) 之和,答案对10^9+7 取模
第一眼:串串题,第二眼:简单数学题
考虑将每一个
答案即为
B
按顺序从
1 到n 拿盘子,对于每个盘子,你可以选择不要,也可以拿走,但拿走盘子需要满足下面三个条件至少一个:
之前没有拿过盘子;
这个盘子的尺寸比之前拿走的盘子的都大,这样你就可以把之前买的盘子叠在它的上面;
这个盘子的尺寸比之前拿走的盘子的都小,这样你就可以把它叠在之前买的盘子的上面。
最后,你想知道,你最多能拿走多少个盘子?
从结尾开始做最长上升和最长下降子序列,二分或线段树优化 dp 即可
时间复杂度
C
有一个
n \times m 的矩阵a ,你可以花费a_{i,j} 的代价来管辖第i 行或第j 列,求管辖整个矩阵的最小代价
CF875F Royal Questions 改版
考虑将平面内的每一行每一列连边
求最大权值基环森林
跟最大生成树差不多,用 Kruskal 跑再稍微改一下就差不多了
时间复杂度
D
天道酬勤,你已经精通了 OI。
你认为 OI 的学习可以分为
n 个阶段,在经历第i 个阶段时,如果自身能力值大于a_i ,那么就可以得到b_i 的进步,也就是能力值累加上b_i 。并不是每个 Oler 都会完整的走完
n 个阶段,你观察了q 个 Oler,第i 个 Oler 会带着x_i 的初始能力值依次经历第l_i,l_{i+1},\dots,r_i 个阶段。他们都还在路上,而你想知道他们最终会变得多强,也就是经历完这些阶段后的能力值。
由于某些原因,有时候你急切的想知道答案。
数据结构(DS)题
咕咕咕
Round 4 (9.19)
A
给定序列
a_{1 \dots n},b_{1 \dots n} ,求:\sum_{i=n}^{n} \sum_{j=1}^{n} \sqrt{\lfloor |a_i-b_j| \rfloor} 其中,
\sum a_i,\sum b_i \leq 10^7
SB 题,题目还叫什么还什么困难卷积
不同的
B
CF623C Electric Charges
二分答案,转化为判定性问题
预处理前后缀最大最小值,分别对于
C
定义
\operatorname{Prime} 为质数 求:\left(\sum_{i=0}^{p-1} a_i \times m^i \right) \bmod p 其中,
p \in \operatorname{Prime},1 \leq m < p,a_0=1,a_1=2,a_2=6 ,\dots
数论题,不会做
咕咕咕
D
红茶国有
m 个部落,为了争夺n 个有灵气的矿洞里的资源,部落之间经常发生冲突。矿洞被标号为1 到n ,每个矿洞初始都被至多一个部落所占领。平时的矿洞里没有任何有价值的资源,珍贵之物只有在特定的时候才会出现,具体地,依次会有q 次事件发生,每次事件形如:
1 l r x:x 号部落发起战争,占领了编号为l 到r 的矿洞,原先占有这些矿洞的部落将会失去它们,转而由x 号部落来占领;
2 l r x:编号为l 到r 的矿洞灵气爆发,都出现了价值为x 的宝物。一旦一个部落占领的矿洞里有宝物,宝物会立即被全部取走。为了知道哪些部落能成为王,你需要求出
q 次事件发生之后,每个部落分别得到的宝物的价值总和。
数据结构(DS)题
赛时着真做结果因为复杂度写假了T飞了
听说正着写能用 set 维护颜色段,但笔者不会
由于没有强制在线,可以考虑时光倒流,这样就不用考虑正着做部落具有占领权这一问题,那就基本上是区间加、区间覆盖、区间查询的模板线段树题
最后再把一开始部落占有的矿洞再 query 一下就好了
时间复杂度
Round 5 (9.24)
A
你是一个人工智能,你需要帮助小
A 完成一局麻将游戏。小
A 十分喜欢立直麻将这种棋牌游戏,而不论是什么麻将,麻将都拥有相似的胡牌规则,小A 想要作为人工智能的你来回答,对于给定的一幅手牌,其是否符合麻将的一般型(面子手)中的胡牌型。此外,为了增加难度,小
A 还会考验你给定一幅听牌的手牌,问这幅手牌听什么牌(也就是多获得一张什么样的牌可以胡牌)。关于麻将的规则,小
A 的介绍如下:
一幅麻将手牌胡牌时应当恰有
14 张牌(也就是听牌时恰有13 张牌),本题中的麻将也不例外;本题中,麻将共有三种花色,分别是万
(m) 、饼(p) 、索(s) ,每种花色共有9 种牌(编号为1~9 ),每种牌最多4 张,例如一万记为1m、九索记为9s一幅麻将胡牌时应当由
4 组面子与1 组雀头组成,其中雀头是指两张完全相同的牌(如:22s,99m),而面子在本题中一共有顺子与刻子两种,介绍如下:
顺子是指数字大小连续的三张同花色的牌,例如:
123s,789p,456m;但形如135m,159p,891s的三张牌则不构成顺子;刻子是指三张完全相同的牌,如:
333m,777s,444p;但形如445s的三张牌则不构成刻子。当听牌在手牌中已经出现
4 张时,由于没有第5 张牌可以胡,不认为这张牌是所听的牌。
小模拟麻将题
-
先考虑
n=14 若
k=2 只考虑顺子和雀头若
k=3,4 枚举雀头再检验剩下的牌是刻子还是顺子 -
在考虑
n=13 显然可以枚举最后一张牌,然后就用
n=14 时的方法做就好
B
有
n 个点,第i 个点的坐标为(x_i,y_i) ,连接两点i,j 的代价为(x_i-x_j)^2+(y_i-y_j)^2 ,求连同所有点花费的最小代价1 \leq n \leq 10^5,0 \leq x_i \leq 10^5,0 \leq y_i \leq 10
人类智慧题
发现
时间复杂度
C
喵喵喵幼儿园有
n 名同学,现在有n 个礼物要分配给他们, 但是每个同学的喜好不同,具体地,第i 名同学最喜欢第p_{i,1} 个礼物,其次喜欢第p_{i,2} 个礼物……最不喜欢第p_{i,n} 个礼物,保证p_i 是一个1 到n 的排列。现在懒惰的老师只给第
i 名同学分配了第i 个礼物,他们自然希望通过交换来得到自己更喜欢的礼物,也就是说,交换结束之后每个人都不会拿到自己更不喜欢的礼物。现在你需要帮助同学们完成交换礼物的过程,好奇的他们希望知道有多少种方法可以使得交换之后每个人都不会拿到自己更不喜欢的礼物。
正当你开始准备解决这个问题时,老师告诉你,同学们之间被分为了两个阵营,只有同一个阵营的同学之间才能交换礼物;并且这个阵营情况是会发生变化的,你需要对于
q 种阵营情况分别求出只在同阵营的同学之间交换礼物,且交换之后合法的方案数,由于答案可能很大,所以你不需要取模再输出。
咕咕咕
D
给定有向图
G=(V,E) ,其中V 为点集,E 为边集。设G 包含n 个结点,用正整数1,2,\dots,n 表示,即V=\lbrace 1,2,\dots,n \rbrace 对于
V 的任意非空子集S \subseteq V ,如果S 中任意点的任意后继均属于S ,即对任意u \in S 及u 的出边(u,v) \in E 均满足v \in S ,则称S 是G 的一个闭合子图。你的任务是,求出有多少个
G 的非空闭合子图S ,满足S 中的点编号是连续的。连续的定义:对任意整数i<k<j ,若i,j \in S ,则k \in S 。答案对
10^9+7 取模
咕咕咕
Round 6 (9.27)
A
Hikari 和 Karen 正在进行国际象棋决斗,她们不会使得对局出现平局的情况,每场对局都会有一个人胜利。
最初,Hikari 的等级为
R_m ,Karen 的等级为R_h ,若此时进行对局,那么 Hikari 获胜的概率为\frac{R_m}{R_m+R_h} ,Karen 获胜的概率为\frac{R_h}{R_m+R_h} ,胜者等级将+1 ,败者等级不变。请输出她们进行
P+Q 局比赛的情况下,Hikari 恰好获胜P 局,Karen 恰好获胜Q 局的概率对147744151 (是个质数)取余后的值,多测。
求概率题,显然答案为:
用快速幂和逆元预处理一下即可,时间复杂度
B
树有
n 个节点,边带边权且具有方向,定义两个点之间的距离是两个点间的简单路径边权和。在每个节点上都有一位游客,游客只能沿着边的方向走,将一条边的方向翻转需要花费1 代价,游客经过一条边花费的时间是边的权。庆典可以在任意一个节点举办,我们希望所有游客都能够前往庆典所在的节点。所以请你帮他挑选一个节点,使得所有游客都能在
D 的时间内前往庆典所在的节点,并且花费的代价最少。
类似于是换根 dp
先跑两次 dfs 求一下树的直径,先以
时间复杂度
C
共
Q 次询问,在序列a 的区间[l_i,r_i] 中选k 个数,最大化\gcd(b_1,b_2,\dots,b_k) 其中,
k \geq (r-l+1)-3
咕咕咕
D
在一个一位数轴上,有两个吃豆人,起始位置都在原点。任意时刻它们可以以不超过
V 的速度移动或静止不动已知第
i 颗豆子在时刻t_i 出现在位置x_i ,吃豆人能吃掉它当且仅当在时刻t_i 位置在x_i 求在吃豆人能吃完所有豆子的前提下,最小化速度上限
V
咕咕咕
Round 7 (9.29)
A
给定一个元素互不相同的序列
A ,以及一个整数k ,保证k \in [0,1] \cap \mathbb N 求有多少种重排
A 的方式满足:\forall 1 \leq i<j \leq n \text{ 且 } i+j \text{ 为奇数,都有 } A_i+A_j \equiv k \pmod 2 答案对
147744151 取模
结论题,不过一开始没能立刻看出条件其实推下去就是对于
就跟奇偶性有关
B
给定一个长度为
n 的数组A ,解决该问题前可以任意重排该数组定义数组的一个区间
[l.r] 是美丽的当且仅当\forall l \leq i \leq j \leq r,A_i | A_j \lor A_j | A_i ,此时区间[L,R] 的分数为\min(A_l,A_{l+1},\dots ,A_r) \times (r-l+1) 最大化
A 数组的美丽区间分数的最大值
较为简单的数论题,从最大值
C
A$ 国拥有 $n$ 个城市,有 $m$ 条双向道路,每条道路的通行时间都为 $1 某人想在满足能在不超过
l_1 的时间从s_1 到t_1 且能在不超过l_2 的时间从s_2 到t_2 的时间,最大化摧毁道路的数量
咕咕咕
D
开派对咯!有
n 个人,起初他们两两之间的关系度都为0 。在接下来m 天,每天都会发生一个事件,事件分三种类型:
第
x 个人和第y 个人的关系度增加了1 。第
x 个人发起了一次聚会,邀请了所有认识x 的人,每个被邀请的人也会叫上自己认识的人……然后所有参加聚会的人两两之间的关系度都会增加1 。请输出当前第
x 个人和第y 个人之间的关系度。定义两个人互相认识当且仅当他们之间的关系度不小于
1 。
咕咕咕
E
对于一个大小为
n 的序列A=(A_1,A_2,\dots,A_n) 和两个整数L,R 满足1 \leq L \leq R \leq n 和两个整数S,T 满足S \neq T 。定义:
F^k(i)= \begin{cases} F^{k-1}(F(i)) &\text{if}(k \neq 1) \\ A_i &\text{if}(k=1) \end{cases} 现在有一个
n 个点,0 条边的有向图G ,按照如下规则给这个图添加边:对于
1 \leq i \leq n,L \leq k \leq R ,添加一条(i,F^k(i)) ,长度为1 的有向边。询问从
S 出发到达T 的最短距离,若不能到达则输出-1 。
咕咕咕