| 题目名称 | 4464. 一周一次买下同班同学的那些事 |
|---|---|
| 输入输出 | bought.in/out |
| 难度等级 | ★ |
| 时间限制 | 2000 ms (2 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:14, 提交:24, 通过率:58.33% | ||||
|
|
100 | 0.274 s | 4.92 MiB | C++ |
|
|
100 | 0.296 s | 5.01 MiB | C++ |
|
|
100 | 0.303 s | 4.78 MiB | C++ |
|
|
100 | 0.305 s | 4.17 MiB | C++ |
|
|
100 | 0.312 s | 4.46 MiB | C++ |
|
|
100 | 0.339 s | 5.63 MiB | C++ |
|
|
100 | 0.349 s | 5.63 MiB | C++ |
|
|
100 | 0.350 s | 8.52 MiB | C++ |
|
|
100 | 0.351 s | 4.58 MiB | C++ |
|
|
100 | 0.351 s | 5.64 MiB | C++ |
| 本题关联比赛 | |||
| 2026.8.28 | |||
| 关于 一周一次买下同班同学的那些事 的近10条评论(全部评论) |
|---|
全名为《我买下了与她的每周密会~以五千圆为借口,共度两人时光~》。
宫城又离家出走了。
仙台给了你一个长度为 $n$ 的宫城好感度数组 $a$,好感度数组中的元素为非零整数,可以为负数(问就是仙台惹宫城生气了)。为了让宫城回来,仙台最多可以进行 $n$ 次如下操作(也可以一次都不做):
- 选择一个下标 $i$($1 \le i \le n$),要求好感度 $a_i > 0$;
- 对于每个 $j$ 满足 $1 \le j \le i$,执行 $a_j := -a_j$。
请你帮助仙台输出一组长度不超过 $n$ 的合法操作序列,使最终数组 $a$ 的元素和最大。
每组测试数据包含多组测试用例。第一行输入测试用例的数量 $t$($1 \le t \le 10^4$)。接下来每组测试用例如下:
第一行输入一个整数 $n$($2 \le n \le 2 \cdot 10^5$),表示数组 $a$ 的长度。
第二行输入 $n$ 个整数 $a_1,a_2,\ldots,a_n$($-10^9 \le a_i \le 10^9, a_i \ne 0$)。
保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。
对于每组测试用例,输出一行整数 $k$($0 \le k \le n$),表示你执行操作的次数。
接下来输出一行 $k$ 个整数 $b_1,\ldots,b_k$,其中 $b_i$ 表示你在第 $i$ 次操作选择的下标。
操作序列执行完后,数组 $a$ 的和应当被最大化。
5 5 -1 -2 -3 -5 -4 4 5 7 10 19 5 1 -3 2 -1 10 4 16 -13 -18 -16 11 2 -10 -11 3 -10 15 7 18 16 17 -9
0 0 2 1 3 0 6 6 3 1 5 4 7
在第一个测试用例中,没有可行的操作。
在第二个测试用例中,好感度数组的和已经最大。
在第三个测试用例中,操作如下:
- $[1, -3, 2, -1, 10] \rightarrow{i = 1} [\color{red}{-1}, -3, 2, -1, 10]$
- $[-1, -3, 2, -1, 10] \rightarrow{i = 3} [\color{red}{1, 3, -2}, -1, 10]$
此时的数组和为 $11$,这是可以达到的最大值。
对于 $50\%$ 的数据,满足 $1 \le n \le 5000,1 \le \sum n \le 10^4$。
什么,你问我 checker 在哪,因为宫城离家出走了,仙台很着急,没有时间给你写 checker。
大洋里的 ans 中只有最大值,没有输出方案,请选手自行检查输出方案(本来是没有大洋里的)。