RDOI Round #1
下发文件:
题目名称 | 猫树 | 记忆余晖 | 乘积,欧拉函数,求和 | 重逢之时 |
---|---|---|---|---|
文件名称 | catree.cpp/.in/.out | memory.cpp/.in/.out | phi.cpp/.in/.out | reunion.cpp/.in/.out |
时间限制 | 1s | 1s | 1.5s | 2s |
空间限制 | 256MB | 512MB | 512MB | 512MB |
题目类型 | 传统题 | 传统题 | 传统题 | 传统题 |
快读随下发文件一同下发,你最好使用。
注意事项:
- 若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。
- 程序可使用的栈内存空间限制与题目的内存限制一致。
- C++ 语言编译选项开启
-O2 -std=c++14
。 - 不要带会产生刺激性气味的食品参加比赛,虽然你可能并不被允许带食品进入考场。
- 请牢记比赛时间为 4h,并合理分配时间。
- 本场比赛前三名可以找非 RDOI 成员领取奖励。
- 不要盯着注意事项看 4h。
- 本场比赛提供暗色题面。
猫树 (Catree)
文件名 catree.cpp/.in/.out
,时间限制 秒,空间限制 。
题目背景
We’re gonna ri-ri-ri-ri-rise 'til we fall
No they don’t speak our language
They say we’re too savage yeah
No no we don’t give a anymore
这里本来有一个关于猫和树和猫粮和异或的感人小故事,但是删掉了。
cat & tree = t。
题目描述
给定一条 条边, 个点的树,第 条边连接点 和点 ,下标从 开始,你也从点 出发。
经过第 条边所需的时间为 ,你需要在 时刻前(包含 时刻)到达点 。
初始你有 枚金币,同时每一个点 上都有一只可以摸的猫 ,有二元组 来描述这只猫,对于每只猫,你可以多次进行如下操作:
- 花费 单位时间摸这只猫,如果这是你第 次摸这只猫,获得 金币。
点 并没有猫,当你到达点 时,就不能进行操作了。
求在规定时间内到达点 时的最大金币数。
输入格式
第一行输入两个正整数 和 ,分别表示猫的只数和规定时间。
第二行输入 个正整数 ,表示经过第 条边需要的时间。
接下来 行每行输入两个整数 和 ,用来描述猫 。
输出格式
输出一个整数,表示最大金币数。
样例
样例输入 #1
3 10 |
样例输出 #1
93 |
样例输入 #2
10 15 |
样例输出 #2
39 |
样例 #3
见下发文件 ex_catree3.in/out,该样例满足测试点 5 的限制。 |
样例 #4
见下发文件 ex_catree4.in/out,该样例满足测试点 10 的限制。 |
说明提示
测试点编号 | 特殊性质 | ||
---|---|---|---|
无 | |||
无 | |||
无 |
特殊性质 :保证对于所有 ,。
保证对于 的测试点,,,,。
保证存在一种方案,使得你可以在规定时间内从点 走到点 。
记忆余晖 (Memory)
文件名 memory.cpp/.in/.out
,时间限制 秒,空间限制 。
题目背景
It won’t be long now, it won’t be long now
When I get back on land
Well I’ll never get my chance
Be ready to live and it’ll be ripped right out of my hands
开篇的线索看似简单,结局到来前,故事展现了其复杂的一面。
单点空间不可大于 512MB,如有需要请联系管理员。
题目描述
给定一个长度为 的序列 。
求满足最长上升子序列之一为 的长度为 的排列 的数量。
输入格式
第一行输入两个正整数 和 ,分别表示排列 的长度和序列 的长度。
第二行输入 个正整数 ,含义见题目描述。
输出格式
输出一个整数,表示排列 的数量,对 取模。
样例
样例输入 #1
4 2 |
样例输出 #1
4 |
样例解释 #1
满足条件的排列 有 ,,,,共 个。
样例输入 #2
6 3 |
样例输出 #2
47 |
样例输入 #3
10 4 |
样例输出 #3
30300 |
样例输入 #4
15 7 |
样例输出 #4
81734510 |
样例输入 #5
21 12 |
样例输出 #5
565973512 |
提示说明
测试点编号 | 特殊性质 | |
---|---|---|
无 | ||
无 | ||
A | ||
无 | ||
无 | ||
无 | ||
无 |
特殊性质 :保证 。
保证对于 的测试点,。
乘积,欧拉函数,求和 (phi)
文件名 phi.cpp/.in/.out
,时间限制 秒,空间限制 。
题目背景
Running through this strange life
Chasing all them green lights
Throwing off the shade
For a little bit of sunshine
题目描述
维护一个集合 ,求该集合中所有元素两两之间的乘积的 值之和。
形式化的,求 。
其中, 表示欧拉函数。
输入格式
第一行输入两个整数 和 , 表示操作次数, 表示集合中元素可能的最大值。
第二行输入 个整数 ,表示一次操作。
我们这样定义一次操作:
- 当 时,将 加入集合 。
- 否则,当 时,将 从集合 中删去。
输出格式
输出 行,每行一个整数,第 行的整数表示操作 后集合 的答案,对 取模。
样例输入 #1
5 4 |
样例输出 #1
0 |
样例解释 #1
当第四次操作后,,所以 。
样例输入 #2
10 10 |
样例输出 #2
0 |
样例 #3
见下发文件 ex_phi3.in/out,该样例满足测试点 4 的限制。 |
样例 #4
见下发文件 ex_phi4.in/out,该样例满足测试点 12 的限制。 |
样例 #5
见下发文件 ex_phi5.in/out,该样例满足测试点 20 的限制。 |
提示说明
测试点编号 | 特殊性质 | ||
---|---|---|---|
无 | |||
无 | |||
无 | |||
无 |
特殊性质 :保证对于进行每一个操作 时,。
保证对于 的测试数据,,。
保证对于没有特殊性质 的测试数据, 在 至 的范围内均匀随机生成。
重逢之时 (reunion)
文件名 reunion.cpp/.in/.out
,时间限制 秒,空间限制 。
题目背景
从夜晚走向清晨。
从清晨走向夜晚。
从现实走向梦境。
从梦境走向现实。
终有一天,我们会在梦中,邂逅那片未经观测的星空。
于太阳西斜之时重逢吧,此时此刻的光辉,盼君勿忘。
题目描述
浩瀚的星云中有着无数的星球,由于宇宙的不断降维,不同的星球处在同一直线上,也就是你可以把星球看做数轴上的点。同时,没有任意两个星球处于同一位置。Chtholly 和你将在两颗不同的星球上,你已经迫不及待的想和她重逢,所以你想知道在不同情况下你们两的最短距离是多少。
具体地,有 个星球,给出每个星球的位置 , 次询问。
对于两个编号下标 ,定义 表示:从 到 选两个数使他们的差的绝对值最小。
形式化地,。
次询问,每次给出一对 ,求 。
输入格式
第一行两个由空格分隔的整数 ;
第一行 个由空格分隔的整数 ;
接下来 行,每行两个整数 。
输出格式
输出 行,每行一个整数表示答案,对 取模。
样例输入 #1
3 3 |
样例输出 #1
8 |
样例解释 #1
。
查询一的答案为 。
查询二的答案为 。
查询三的答案为 。
样例输入 #2
5 5 |
样例输出 #2
197555053 |
样例 #3
见下发文件 ex_reunion3.in/out,该样例满足测试点 1 的限制。 |
样例 #4
见下发文件 ex_reunion4.in/out,该样例满足测试点 4 的限制。 |
样例 #5
见下发文件 ex_reunion5.in/out,该样例满足测试点 7 的限制。 |
样例 #6
见下发文件 ex_reunion6.in/out,该样例满足测试点 10 的限制。 |
提示说明
对于 的数据, 。
测试点编号 | ||
---|---|---|