U370635 10.12模拟赛改题
题目背景
10.12模拟赛改题
通过一个 Subtask 即可 AC。
Subtask.0 为 T1;
Subtask.1 为 T2;
Subtask.2 为 T3;
Subtask.3 为 T4;
题目描述
# 10.12 模拟赛
| 题目名 | 夕景昨日 | 透明答案 | 界外科学 | T 匹配 |
| - | :-: | :-: | :-: | :-: |
| 文件名 | switch | game | buy | match |
| 题目类型 | 传统 | 传统 | 传统 | 传统 |
| 时空限制 | $\text{1s 512M}$ | $\text{1s 512M}$ | $\text{1s 512M}$ | $\text{1s 512M}$ |
---
# 夕景昨日 switch
**题目描述**
Shintaro 制作了 $n$ 个开关,每个开关的状态可被设置为 $+$ 或 $−$。
现在你有一个数列 $A=(a_1,\dots,a_n)$,和一个初始值为 $0$ 的变量 $v$。你可以自由地操纵开关,当第 $i$ 个开关被设置为 $+$ 状态时, $v$ 会加上 $a_i$,被设置为 $−$ 状态时,$v$ 会减去 $a_i$。
请你判断是否有两种及以上不同的方式操纵开关,使得最后得到的 $v$ 值相等。
**输入格式**
第一行一个数 $n$,表示开关的个数。
第二行 $n$ 个数,第 $i$ 个数表示 $a_i$
**输出格式**
如果有请输出 `Yes`,否则输出 `No`。
**样例输入1**
```
3
1 2 3
```
**样例输出1**
```
Yes
```
**样例输入2**
```
4
3 4 5 10
```
**样例输出2**
```
No
```
**数据范围**
对于 $20\%$ 的数据,$n \le 10$。
对于 $100\%$ 的数据,$1 \le n \le 10 ^ 5, 0 \le a_i \le 5 \times 10^5$。
---
# 透明答案 game
**题目描述**
Ayano 和 Bob 在玩简单的取石子游戏。最初有 $n$ 堆石子,每堆有 $2$ 块。
Ayano 和 Bob 轮流取石子(从 Ayano 开始)。每一次取石子时当前玩家可以任选一堆,如果还剩下 $k$ 块石子,则可以从这堆中取出 $1$ 到 $k$ 之间的任意数量的石子。
此外,每 $3$ 回合他们会添加一堆石子(含 $2$ 块石子)。换句话说,在第 $t$ 次操作(两个人操作的总次数)之后,如果 $t$ 可以被 $3$ 整除,则添加一堆 $2$ 块石子的石子堆。
(即使在第 $t$ 次操作中取完了所有石子,如果 $t$ 可被 $3$ 整除,也会添加新石子堆并继续游戏。)
双方都采取最优策略,无法操作的玩家输掉游戏。请你判断哪个玩家获胜。
**输入格式**
一行一个数 $n$,表示最初石子的堆数。
**输出格式**
如果 Ayano 获胜则输出 `Ayano`,否则输出 `Bob`。
**样例输入1**
```
1
```
**样例输出1**
```
Ayano
```
**样例输入2**
```
998
```
**样例输出2**
```
Bob
```
**数据范围**
对于 $30\%$ 的数据,$n \le 10$。
对于 $100\%$ 的数据,$n \le 1000$。
---
# 界外科学 buy
**题目描述**
ENE 是一位电脑少女,这天她在帮 Shintaro 网上购物。网店一共有 $n$ 件物品,第 $i$ 件物品有 $a_i$ 的价格,并且购买这件物品会给 Shintaro 带来 $b_i$ 的满足度,不同的物品获得的满足度会累加。
Shintaro 最多只能支付 $m$ 元。由于他资金有限,ENE 黑入了网店的支付系统。在她操作之后,总价格的计算方式是将所有物品的价格给 $\operatorname{xor}$
(异或运算)起来。
如 Shintaro 现在买了价格为 $1, 2, 4, 7$ 的四件物品,总价格为 $1⊕2⊕4⊕7=0$。
Shintaro 现在想知道在足够支付所买的物品的前提下,他最多能获得多少满足度。
**输入格式**
第一行两个数 $n,m$,表示物品的个数和 Shintaro
最多能支付多少钱。
第二行 $n$ 个数,第 $i$ 个数 $a_i$ 表示第 $i$ 件物品的价格。
第三行 $n$ 个数,第 $i$ 个数 $b_i$ 表示第 $i$ 件物品能带给 Shintaro 的满足度。
**输出格式**
一行一个数表示答案。
**样例输入1**
```
4 3
1 3 4 5
2 5 -3 100
```
**样例输出1**
```
104
```
**样例输入2**
```
1 1000000000
1
-1000000000
```
**样例输出2**
```
0
```
**样例输入3**
```
4 8
1 2 4 8
13 6 32 50
```
**样例输出3**
```
51
```
**数据范围**
对于 $30\%$ 的数据,$n \le 5$。
对于 $50\%$ 的数据,$n \le 20$。
对于另外 $20\%$ 的数据,$1 \le m,a_i \le 100$。
对于 $100\%$ 的数据,$1 \le n \le 36,1 \le m,a_i,|b_i| \le 10^9$。
---
# T 匹配 match
**题目描述**
婷姐造了一棵 $n$ 个点的树($n$ 为偶数),她希望将树上的点两两匹配。也就是说对于任意一个结点 $u$,有且仅有一个结点 $v$ 与之配对。
不过婷姐对于匹配有一些限制。对于两个匹配 $(u,v)$ 和 $(x,y)$,婷姐要求这两个匹配要么相离,要么一个包含另一个。
相离:$u$ 到 $v$ 的路径与 $x$ 到 $y$ 的路径不相交。
包含:$u$ 到 $v$ 的路径包含 $x$ 到 $y$ 的路径或者 $x$ 到 $y$ 的路径包含 $u$ 到 $v$ 的路径。
婷姐需要你告诉他,这样的匹配一共有多少种方案。答案对 $998244353$ 取模。
两个方案不同当且仅当存在某个结点,使得在这两个方案中与它配对的那个结点不同。
**输入格式**
第一行一个整数 $n$。
接下来 $n−1$ 行每行 $2$ 个整数 $x,y$,表示树上的一条边。
**输出格式**
一行一个整数表示方案数,对 $998244353$ 取模。
**样例输入**
```
8
1 2
3 4
5 6
7 8
1 4
3 6
5 8
```
**样例输出**
```
14
```
**数据范围**
对于 $20\%$ 的数据,$n \le 8$。
对于 $50\%$ 的数据,$n \le 100$。
对于 $100\%$ 的数据,$2 \le n \le 2000$。保证 $n$ 是偶数。
输入格式
见问题描述
输出格式
见问题描述
说明/提示
见问题描述