题目名称 | 3857. [USACO23 Jan Gold] Light Off |
---|---|
输入输出 | lightoffg.in/out |
难度等级 | ★★★ |
时间限制 | 4000 ms (4 s) |
内存限制 | 256 MiB |
测试数据 | 20 |
题目来源 | yuan 于2023-03-24加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:1, 通过率:100% | ||||
yrtiop | 100 | 3.078 s | 21.39 MiB | C++ |
本题关联比赛 | |||
4043级2023省选模拟赛4 | |||
EYOI常规赛9 3/4th |
关于 Light Off 的近10条评论(全部评论) | ||||
---|---|---|---|---|
玩原神玩的。
|
lightoffg.in
输出文件:lightoffg.out
简单对比$Bessie$ 想睡觉,但农场的灯光让她睡不着。她怎么能关掉它们?
$Bessie$ 有两个长度为 $N(2≤N≤20)$ 的位串,分别代表灯状态序列和开关状态序列。每个指示灯要么打开($1$),要么关闭($0$)。每个开关要么处于激活状态($1$),要么处于非激活状态($0$)。
一次 *切换* 由以下 $3$ 步操作组成:
$(1)$只改变一个开关(如果开关处于非活动状态,则将其设置为活动状态,反之亦然)。
$(2)$对于每个激活的开关,改变相应灯的状态(如果灯打开,则将其关闭,反之亦然)。
$(3)$将开关序列循环右移一位。具体而言,如果开关序列最初是:$s_0s_1…s_{N−1}$,则它变为:$s_{N−1}s_0s_1…s_{N–2}$。
对于上述问题的 $T(1≤T≤2·10^5)$ 个样例,计算关闭所有灯所需的最小切换次数。
第一行包含 $T$ 和 $N$。
接下来的 $T$ 行中的每一行包含一对长度为 $N$ 的位串,分别表示灯序列和开关序列的初态。
对于每组测试数据,输出关闭所有灯所需的最小切换次数。
4 3 000 101 101 100 110 000 111 000
0 1 3 2
第 $1$ 组数据,所有灯都已经关了,无需任何切换操作。
第 $2$ 组数据,需要一次切换:
在第一次切换中:
将操作序列由 $100$ 变为 $101$。
灯的状态由 $101$ 变为 $000$。
操作序列右移一位变为 $110$。
第 $3$ 组数据:需要三次切换:
在第一次切换中:
将操作序列由 $000$ 变为 $100$。
灯的状态由 $110$ 变为 $010$。
操作序列右移一位变为 $010$。
在第二次切换中:
将操作序列由 $010$ 变为 $000$。
灯的状态保持 $010$ 不变。
操作序列右移一位变为 $000$。
在第三次切换中:
将操作序列由 $000$ 变为 $010$。
灯的状态由 $010$ 变为 $000$。
操作序列右移一位变为 $001$。
第 $4$ 组数据:需要两次切换:
在第一次切换中:
将操作序列由 $000$ 变为 $100$。
灯的状态由 $111$ 变为 $011$。
操作序列右移一位变为 $010$。
在第二次切换中:
将操作序列由 $010$ 变为 $011$。
灯的状态由 $011$ 变为 $000$。
操作序列右移一位变为 $101$。
1 10 1100010000 1000011000
2
在第一次切换时,先改变第 $7$ 个开关的状态。
点击下载样例3
测试点 $3 \sim 5$:$N \leq 8$;
测试点 $6 \sim 13$:$N \leq 18$;
对于 $100\%$ 的数据,$1≤T≤2×10^5,2≤N≤20$;