10-18 自强组 模拟赛
2026-10-18 14:19:50
发布于:湖北
T835611 混乱(chaos)
题目背景
吾即是吾,吾本真。
题目描述
鸠有两个序列 和 。
已知序列 的构造方法:
- 对于 的情况,,其中 表示异或;
- 。
鸠给你了序列 的长度 ,以及序列 ,求序列 ,保证有解。
输入格式
第一行一个正整数 。
接下来 行,每行一个自然数 。
输出格式
共 行,每行一个整数 。
保证有符合要求的输出,如果有不止一种符合要求的输出,你只需要输出任意一种。
输入输出样例 #1
输入 #1
3
2
3
1
输出 #1
1
2
3
说明/提示
【样例 1 解释】
样例 2
见选手目录下的 chaos2.in/chaos2.out。
该样例满足测试点 的限制。
数据范围
| 测试点 | $T <>e $ |
|---|---|
对于 的数据,保证 ,且保证有解。
T835940 幻景(mirage)
题目背景
赛后更新:本题已经添加了子任务。
题目描述
鸠有 个集合 ,且对于所有 满足 。有 个条件,形如如下三种:
-
1 u v,表示 。 -
2 u v,表示 。 -
3 u v,表示 。
你需要输出是否存在满足所有 个条件的 个集合。
注: 表示 。
输入格式
第一行输入一个整数 ,表示测试数据的数量。
对于每组数据,第一行输入三个正整数 ,后面的 行中,每行三个正整数 ,含义见题目描述。
输出格式
对于每组数据,输出一个字符串 YES 或 NO,表示是否存在满足所有 个条件的 个集合。
输入输出样例 #1
输入 #1
2
3 2 3
1 3 2
2 2 1
3 1 2
3 2 3
1 3 1
2 2 3
1 1 2
输出 #1
YES
NO
T835439 小鸟游六花(kirinosama)
题目描述
在放学后的活动室里,六花又开始研究新的“不可视境界线”。
“勇太!我发现了,人与人之间其实存在着一种由位置和力量共同决定的距离!”
她在纸上画出了排成一排的 个点,并给第 个点标上了一个神秘的“魔力值” 。
对于两个不同的位置 ,六花认为它们之间的“共鸣距离”为 。
然而,并不是任意两个位置之间都能够产生共鸣。
六花又在纸上画出了 个“不可视境界”,每个境界覆盖一段连续的位置 。
如果存在某一道境界,使得两个位置中恰好一个位于境界之内,而另一个位于境界之外,那么六花就认为这两个位置成功地被境界分隔,是一对“合法位置”。
“只要找到被境界分隔,而且共鸣最强的两个点,就能够打开真正的不可视境界线!”
勇太看着已经完全沉浸在设定里的六花,只好帮她计算:
所有合法位置对中,最大的 是多少?
如果根本不存在合法的位置对,那么就输出 。
输入格式
第一行输入两个整数 。
第二行输入 个整数 。
接下来 行,每行两个整数 ,表示一个区间。
输出格式
输出所有合法位置对的最大代价。
输入输出样例 #1
输入 #1
6 2
3 8 1 7 2 9
2 4
4 6
输出 #1
11
说明/提示
对于 的数据有 ,,,。
| Subtask | 分值 | 限制 |
|---|---|---|
| 1 | 15 | |
| 2 | 20 | |
| 3 | 15 | 所有给定区间两两不交 |
| 4 | 50 | 无特殊限制 |
T835440 夏洛特(charlotte)
题目背景
关注 Cute_Wazzy 谢谢喵。
题目描述
星之海学园最近又发现了一批能力者。
为了防止能力之间互相干扰,友利奈绪决定重新安排他们的编号位置。
现在有 名能力者,他们被编号为 。
你需要给他们安排一个新的顺序,记第 个位置上的能力者编号为 。因此 必须是一个 的排列。
但是由于某些能力之间存在特殊的关系,友利规定:
- 对于任意 ,必须满足 。
友利想知道,一共有多少种不同的合法安排方案。
由于答案可能很大,你只需要输出答案对 取模后的结果。
输入格式
第一行输入两个正整数 。
输出格式
输出一行,表示合法排列的数量对 取模后的结果。
输入输出样例 #1
输入 #1
5 1
输出 #1
4
说明/提示
对于 的数据有 ,。
| Subtask | 分值 | 限制 |
|---|---|---|
| 1 | 10 | |
| 2 | 15 | |
| 3 | 15 | |
| 4 | 20 | |
| 5 | 40 | 无特殊限制 |
全部评论 3
关注Eason_cyx谢谢喵
昨天 来自 湖北
0T2怎么写啊,最高只有60分
昨天 来自 湖北
0T1:100分
#include<bits/stdc++.h> using namespace std; int n; long long b[100005]; long long a[100005]; int main(){ cin >> n; for(int i = 1; i <= n; i++) { cin >> b[i]; } a[1] = 0; for(int i = 2; i <= n; i++) { a[i] = a[i-1] ^ b[i]; } for(int i = 1; i <= n; i++) { cout << a[i] << "\n"; } return 0; }2天前 来自 湖北
0














有帮助,赞一个