#P16917. [JLCPC 2026] 题列序 1

    ID: 19235 远端评测题 5000ms 1024MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>吉林Special JudgeO2优化2026省赛/邀请赛

[JLCPC 2026] 题列序 1

题目描述

给定一个长度为 nn 且值域在 [0,2][0,2] 的整数序列 aa。定义一次操作如下:

  • 选择下标 xx1xn21 \le x \le n - 2);
  • s=(ax+ax+1+ax+2)mod3s=(a_x+a_{x+1}+a_{x+2}) \bmod 3,然后将 ax,ax+1,ax+2a_x, a_{x+1}, a_{x+2} 同时变为 ss

你需要做若干次操作(可以不做)以最大化 aa 序列所有数的和。同时,你需要给出一种合法操作方案,该方案的操作次数不超过 57n+100\left\lfloor\dfrac{5}{7}n\right\rfloor+100。可以证明总是存在满足操作次数限制的方案。

输入格式

第一行有一个整数 TT1T10001 \le T \le 1000),表示数据组数。接下来 TT 段,每段描述一组数据:

  • 第一行输入一个整数 nn3n1063 \le n \le 10^6),表示序列 aa 的长度。
  • 第二行包含 nn 个整数,第 ii 个整数表示 aia_i0ai20 \le a_i \le 2)。

数据保证 n106\sum n \le 10^6

输出格式

对于每组数据:

  • 第一行输出两个整数 ssKK,分别表示序列和的最大值以及你给出的方案的操作次数,你需要保证 $0 \le K \le \left\lfloor\dfrac{5}{7}n\right\rfloor + 100$。
  • 接下来一行输出 KK 个正整数,第 ii 个整数表示第 ii 次操作选择的 xx
3
3
0 1 0
5
0 2 1 2 2
7
1 1 1 1 1 1 1
3 1
1
10 4
2 2 3 1
14 5
1 3 4 5 1