「CROI · R2」01-string
题目描述
给定两个长度为 $n$ 的 $01$ 串 $S,T$,你可以对串 $S$ 执行无限次操作,每次都可以从以下操作中任选一个执行:
- 选择两个正整数 $l,r(1\le l\le r\le n)$,将 $S_l\dots S_r \ 01$ 反转。
- 选择两个正整数 $l,r(1\le l\le r\le n)$,将 $S_l\dots S_r $ 全部改为 $0$。
- 选择两个正整数 $l,r(1\le l\le r\le n)$,将 $S_l\dots S_r $ 全部改为 $1$。
你需要回答最少使用几次操作才能把 $S$ 变成 $T$。
输入输出格式
输入格式
**本题采用多组数据测试。**
第一行一个正整数 $T$,表示数据组数。
对于每组数据:
第一行一个 $01$ 串,表示串 $S$。
第二行一个 $01$ 串,表示串 $T$。
输出格式
一共 $T$ 行,第 $i$ 行一个整数,表示第 $i$ 组数据的答案。
输入输出样例
输入样例 #1
3
00000
11111
10101
01010
11100101
11110000
输出样例 #1
1
1
2
说明
**【样例解释】**
以下提供样例三组数据的合法方案之一:
对于第一组数据,选取 $l=1,r=5$,将 $S_l\dots S_r$ 全部变成 $1$。
对于第二组数据,选取 $l=1,r=5$,将 $S_l\dots S_r \ 01$ 反转。
对于第三组数据,先选取 $l=4,r=8$,将 $S_l\dots S_r$ $01$ 反转,再选取 $l=5,r=8$,将 $S_l\dots S_r$ 全部变成 $0$。
**【数据范围】**
**本题采用捆绑测试**。
- Sub 0(10 points):$n\le 5$。
- Sub 1(10 points):$n\le 18$。
- Sub 2(30 points):$n\le 2000$。
- Sub 3(50 points):无特殊限制。
对于所有的数据,$1\le T \le 10$,$1\le n\le 5\times 10^5$。