| 题目名称 | 4456. merge |
|---|---|
| 输入输出 | mergeegrem.in/out |
| 难度等级 | ★★★☆ |
| 时间限制 | 2000 ms (2 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 20 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:4, 提交:30, 通过率:13.33% | ||||
|
|
100 | 0.554 s | 3.83 MiB | C++ |
|
|
100 | 2.547 s | 3.69 MiB | C++ |
|
|
100 | 4.087 s | 7.04 MiB | C++ |
|
|
100 | 5.060 s | 8.78 MiB | C++ |
|
|
55 | 19.827 s | 6.08 MiB | C++ |
|
|
50 | 6.424 s | 264.57 MiB | C++ |
|
|
50 | 6.643 s | 264.55 MiB | C++ |
|
|
45 | 24.042 s | 3.85 MiB | C++ |
|
|
25 | 6.838 s | 3.79 MiB | C++ |
|
|
25 | 31.524 s | 3.96 MiB | C++ |
| 本题关联比赛 | |||
| 2026.8.26 | |||
| 关于 merge 的近10条评论(全部评论) |
|---|
在此键入。
给定一个长度为 $n$ 的序列 $a_1,a_2,\ldots a_n$。
你可以对这个序列进行若干(可能为 $0$)次操作。在每次操作中,你将会:
选择三个正整数 $i<j<k$,满足 $a_i\oplus a_j\oplus a_k=0$ 且 $k$ 的值不超过此时序列的长度。记 $s=a_i\oplus a_{i+1}\oplus \cdots\oplus a_k$。
然后,删除 $a_i\sim a_k$,并在原来这 $k-i+1$ 个数所在的位置插入 $s$。注意,此时序列 $a$ 的长度将会减少 $(k-i)$。
请你判断是否能够使得序列 $a$ 仅剩一个数,也就是说,在所有操作结束后 $a$ 的长度为 $1$。若可以,你还需要给出一种操作方案。
本题含有多组测试数据。
输入的第一行包含一个正整数 $T$,表示数据组数。
对于每组测试数据,第一行一个正整数 $n$,表示初始序列长度。
第二行 $n$ 个整数 $a_1,a_2,\ldots,a_n$,表示初始序列中每个元素的值。
对于每组测试数据:
若存在一种方案使得序列 $a$ 仅剩一个数,请在输出的第一行输出 Huoyu。
接下来,在第二行你应该输出一个非负整数 $t$,表示你的操作次数。你需要保证 $0\le t\le n$。
接下来 $t$ 行,每行输出三个正整数 $i,j,k$,表示你在这次操作中选择的三个数的值。你需要保证 $i<j<k$ 且 $k$ 的值不超过此时序列的长度。
否则,请输出一行一个字符串 Shuiniao。
2 5 3 3 1 4 5 9 3 4 6 5 4 5 1 2 4
Huoyu 2 3 4 5 1 2 3 Huoyu 3 1 3 4 2 3 4 1 2 4
对于第一组测试数据:
第一次操作中,$a_3\oplus a_4\oplus a_5=1\oplus4\oplus5=0$,操作后的序列为 $[3,3,0]$;
第二次操作中,$a_1\oplus a_2\oplus a_3=3\oplus3\oplus0=0$,操作后的序列为 $[0]$;
于是,序列 $a$ 在两次操作后仅剩一个数。
对于第二组测试数据:
第一次操作,$a_1\oplus a_3\oplus a_4=3\oplus6\oplus5=0$,$s=4$,操作后的序列为 $[4,4,5,1,2,4]$。
第二次操作,$a_2\oplus a_3\oplus a_4=4\oplus5\oplus1=0$,操作后的序列为 $[4,0,2,4]$。
第三次操作,$a_1\oplus a_2\oplus a_4=4\oplus0\oplus4=0$,$s=2$,操作后的序列为 $[2]$。
于是,序列 $a$ 在三次操作后仅剩一个数。
大样例。
对于所有数据满足 $1\le T\le 10,1\le n\le 500,0\le a_i<512$。
| 测试点编号 | $n$ | $a_i<$ |
|---|---|---|
| $1$ | $= 1$ | $512$ |
| $2$ | $= 2$ | $512$ |
| $3$ | $= 3$ | $512$ |
| $4$ | $= 4$ | $512$ |
| $5$ | $= 5$ | $512$ |
| $6\sim 7$ | $\le 40$ | $512$ |
| $8\sim 9$ | $\le 70$ | $512$ |
| $10\sim 11$ | $\le 130$ | $512$ |
| $12\sim 13$ | $\le 300$ | $128$ |
| $14\sim 15$ | $\le 500$ | $64$ |
| $16\sim 17$ | $\le 500$ | $128$ |
| $18\sim 20$ | $\le 500$ | $512$ |
在此键入。