模拟八

T1 玲珑宝塔

时间限制:1000ms
空间限制:1024MiB

题目描述

小 W 有 \(n\) 块积木,第 \(i\) 块大小为 \(a_i\)。定义“玲珑宝塔”为 \(k\) 块积木 \(b_1, \ldots, b_k\),且对每一个 \(1\le j < k\) 满足 \(b_j - b_{j+1} \ge r.\)

你需要求出, 最多可以选出多少个不交的 \(k\) 元集合, 使得每个集合对应的积木们都可以通过排列顺序成为“玲珑宝塔”.

输入格式

  • 第一行三个整数 \(n,k,r\)。
  • 第二行 \(n\) 个整数 \(a_1,a_2,\ldots,a_n\)。

输出格式

输出一个整数,表示最多能拼出的“玲珑宝塔”个数。

输入样例

5 2 2
1 1 3 4 5

输出样例

2

说明/提示

  • \(1 \le n,k \le 10^6\)
  • \(0 \le a_i,r \le 10^9\)

本题共 4 个子任务:

子任务编号 性质内容 分值
1 \(n \le 6\) 10
2 \(a_i=i\) 20
3 \(r \le 10\) 30
4 无特殊限制 40

T2 派对

时间限制:2000ms
空间限制:256MiB

题目描述

小 A 要举办一场派对,她有 \(N\) 个可以邀请的朋友。然而,某些朋友之间有矛盾,为了不让派对被搞砸,她不能同时邀请两个互相有矛盾的朋友。但是,她又希望派对足够热闹,所以她想要至少邀请 \(K\) 个人。请帮她判断是否能至少邀请 \(K\) 个人,如果能的话,输出最多能邀请多少人,并输出邀请方案。

输入格式

第一行两个正整数 \(N\) 和 \(K\) 。

第二行一个正整数 \(m\) ,表示有矛盾的朋友对数。

接下来 \(m\) 行,每行包含两个正整数 \(a,b\) ,表示朋友 \(a\) 和 \(b\) 之间有矛盾。

输出格式

如果无法邀请 \(K\) 个人输出一行一个字符串 NO 。

否则第一行输出最多邀请人数,第二行输出被邀请人的编号,用单个空格分隔,按递增顺序排列。如果有多个正确答案,程序可以输出其中任意一个。

输入样例

9 4
12
9 6
4 6
7 9
1 2
2 1
9 7
7 6
4 5
7 8
8 9
3 4
4 3

输出样例

5
1 3 5 6 8

说明/提示

对于 \(20\%\) 的数据:\(N\leq 15\) 。

对于 \(40\%\) 的数据:\(N,M\leq 100\) ,\(\max(1,N-10)\leq K\leq N\) 。

对于 \(60\%\) 的数据:\(N,M\leq 3000\) ,\(\max(1,N-10)\leq K\leq N\) 。

对于 \(100\%\) 的数据:\(1\leq N\leq 10^6\) ,\(1\leq M\leq 10^6\) ,\(\max(1,N-20)\leq K\leq N\) 。

【校验器】

为了方便选手测试,SPJ题目会下发 checker.cpp 文件,选手可以编译该程序,并使用它校验自己的输出文件。但请注意它与最终评测时所使用的校验器并不完全一致。你也不需要关心其代码的具体内容。

编译命令为:g++ checker.cpp −o checker -std=c++11。

checker 的使用方式为:checker <inputfile> <outputfile>,参数依次表示输入文件与你的输出文件。

若你输出的数字大小范围不合法,则校验器会给出相应提示。若你的输出数字大小范围正确,但方案错误,则校验器会给出简要的错误信息:

  1. A x,表示进行到第 \(x\) 个操作时不合法。
  2. B x,表示操作执行完毕后第 \(x\) 个柱子上的球不合法。

若你的方案正确,校验器会给出 OK。

T3 菟园

时间限制:2000ms
空间限制:512MiB

题目背景

需要多少回忆 换回往日流觞

不问天有多高 不问何处是旧乡

所谓思念好像秋风 泼洒满山枯黄

暮云相送江水东流 总是韶华难忘

题目描述

皇子的封地里其实有很多小兔子。兔子是有颜色的,我们用小写字母代替。

兔子们要开始排队了,接下来 \(n\) 个时刻,每个时刻 \(i\) 会发生以下事件之一:

  1. 修改事件:颜色为 \(c_i\) 的兔子排到了序列末尾。
  2. 询问事件:兰兰需要你回答,这个序列有多少长度为 \(k_i\) 的子区间,和前 \(k_i\) 只兔子构成的子区间完全相同。

两个区间不同当且仅当存在对应位置的兔子颜色不同。

本题部分测试点强制在线,具体细节可见输入格式与数据范围。

输入格式

一行两个整数 \(n,t\),分别表示时刻数与强制在线系数。

接下 \(n\) 行,每行形如:

  1. 1 c,表示修改事件;其对应的 \(c_i=chr((c+t\times lst)\mod 26)\),其中 \(chr(x)\) 表示第 \(x\) 个小写字母(下标从 \(0\) 开始),注意这里输入的 \(c\) 是整数。
  2. 2 k,表示询问事件;其对应的 \(k_i=((k+t\times lst)\mod m)+1\),其中 \(m\) 表示当前序列长度。

上述的 \(lst\) 均表示上一次询问的答案,若不存在上一次询问,则 \(lst=0\)。

输出格式

对于每个询问,输出一行一个整数表示答案。

输入样例

18 1
1 0
1 1
1 2
1 0
2 0
1 25
2 0
2 0
1 24
1 25
1 0
1 24
2 7
2 6
2 8
2 1
2 2
2 4

输出样例

2
1
2
4
3
2
2
1
1

说明/提示

样例解释

最终序列为 \(abcababca\)。

九次查询分别在序列长度为 \(4,5,5,9,9,9,9,9,9\) 时进行 \(k_i=1,3,2,1,2,3,4,5, 6\) 的查询。

数据范围

对于 \(100\%\) 的数据,满足 \(1\leq n\leq 8\times 10^5,0\leq t\leq 1,0\leq c,k\leq n\)。

保证询问时序列长度至少为 1。保证两种事件的出现次数相等。

测试点编号 \(n\leq\) 特殊性质
\(1\sim 2\) \(500\) 无
\(3\sim 4\) \(2000\) 无
\(5\sim 6\) \(2\times 10^5\) A
\(7\sim 10\) \(8\times 10^5\) 无

特殊性质 A:保证输入的 \(c,k\) 在 \([0,n]\) 内随机生成。

对于编号为奇数的测试点,保证 \(t=0\);对于编号为偶数的测试点,保证 \(t=1\)。

T4 七ツ風

时间限制:2000ms
空间限制:1024MiB

题目背景

憐れむ 僕の記憶この温もり\(\\\)二度と手放せない憶那\(\\\)花緑青のような 君が去って\(\\\)揚々とこの物語はまだ\(\\\)続いている

—— 七ツ風 - Nanatsukaze

题目描述

给定一棵 \(n\) 个点的树,每一条边有颜色 \(0/1\)。

计数满足以下条件的 \(n\) 阶排列 \(p\) 个数:

  • \(\forall i \in [1,n-1]\),树上 \(p_i\) 到 \(p_{i+1}\) 的路径上包含两种颜色的边。

答案对 \(10^9+7\) 取模。

输入格式

从文件 \(\it{reincarnation.in}\) 中读入数据。

第一行一个整数 \(n\)。

接下来 \(n-1\) 行,每行两个整数 \(u,v,w\) 表示一条连接 \(u,v\),颜色为 \(w\) 的边。

输出格式

输出到文件 \(\it{reincarnation.out}\) 中。

一行一个整数表示答案。

输入样例 #1

4
1 2 0
2 3 1
3 4 0

输出样例 #1

2

输入样例 #2

见附件 reincarnation/reincarnation2.in

输出样例 #2

见附件 reincarnation/reincarnation2.ans

输入样例 #3

见附件 reincarnation/reincarnation3.in

输出样例 #3

见附件 reincarnation/reincarnation3.ans

说明/提示

样例 1 解释

合法的排列有 \([3,1,4,2]\) 和 \([2,4,1,3]\) 两种。

数据范围

对于所有数据,有 \(2\leq n\leq 77\)。

测试点 \(n\) 特殊性质
\(1\) \(\leq 7\)
\(2\) \(\leq 17\)
\(3\) \(\leq 77\) 树是菊花
\(4,5\) \(\leq 77\) 树是一条链
\(6,7\) \(\leq 77\) 树是一条毛毛虫
\(8 \sim 10\) \(\leq 77\)

其中,一个树是毛毛虫,当且仅当删去树上所有的叶子后树剩下 \(\leq 1\) 个点或者形成一条链。

posted @ 2026-09-21 10:56  ShanLiing  阅读(17)  评论(0)    收藏  举报
//雪花飘落效果