模拟八
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>,参数依次表示输入文件与你的输出文件。
若你输出的数字大小范围不合法,则校验器会给出相应提示。若你的输出数字大小范围正确,但方案错误,则校验器会给出简要的错误信息:
A x,表示进行到第 \(x\) 个操作时不合法。B x,表示操作执行完毕后第 \(x\) 个柱子上的球不合法。
若你的方案正确,校验器会给出 OK。
T3 菟园
时间限制:2000ms
空间限制:512MiB
题目背景
需要多少回忆 换回往日流觞
不问天有多高 不问何处是旧乡
所谓思念好像秋风 泼洒满山枯黄
暮云相送江水东流 总是韶华难忘
题目描述
皇子的封地里其实有很多小兔子。兔子是有颜色的,我们用小写字母代替。
兔子们要开始排队了,接下来 \(n\) 个时刻,每个时刻 \(i\) 会发生以下事件之一:
- 修改事件:颜色为 \(c_i\) 的兔子排到了序列末尾。
- 询问事件:兰兰需要你回答,这个序列有多少长度为 \(k_i\) 的子区间,和前 \(k_i\) 只兔子构成的子区间完全相同。
两个区间不同当且仅当存在对应位置的兔子颜色不同。
本题部分测试点强制在线,具体细节可见输入格式与数据范围。
输入格式
一行两个整数 \(n,t\),分别表示时刻数与强制在线系数。
接下 \(n\) 行,每行形如:
1 c,表示修改事件;其对应的 \(c_i=chr((c+t\times lst)\mod 26)\),其中 \(chr(x)\) 表示第 \(x\) 个小写字母(下标从 \(0\) 开始),注意这里输入的 \(c\) 是整数。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
题目背景
憐れむ 僕の記憶この温もり\(\\\)二度と手放せない憶那\(\\\)花緑青のような 君が去って\(\\\)揚々とこの物語はまだ\(\\\)続いている
题目描述
给定一棵 \(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\) 个点或者形成一条链。

浙公网安备 33010602011771号