当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

6839:Binary Addition

题目描述
你有两个无限长$01$串$S, T$,分别记作$S_0S_1\dots$和$T_0T_1\dots$。其中$S$和$T$从$n$位之后都是$0$,也就是当$i\geq n$,有$S_i=T_i=0$。

你可以对$S$串进行操作:

- 修改$S$串的某一位,从$0$变成$1$或者从$1$变成$0$。
- 将$S$当成二进制数加$1$,也就是记$s=\sum_{i\geq 0} S_i2^i$,将$S$变成$s+1$二进制表示的形式,其中低位在最前面。

问最少的步数将$S$变成$T$。
输入解释
第一行一个正整数$T(1\leq T\leq 10^4)$表示数据组数。

对于每组数据,第一行一个整数$n$,接下来两行长度为$n(1\leq n\leq 10^5)$的$01$串$S$和$T$,表示$S$和$T$的前$n$位。

保证$\sum n\leq 10^6$。
输出解释
对于每组数据,输出一个整数,表示步数。

输入样例
3
5
11111
00000
5
10100
01010
5
00000
00001
输出样例
2
3
1

提示
第一组数据中,可以选择先加一变成 "000001",然后将S5变成 '0'。

第二组数据中,先加一变为 "01100",然后直接修改。

第三组数据中,直接修改。
来自杭电HDUOJ的附加信息
Recommend heyang

该题目是Virtual Judge题目,来自 杭电HDUOJ

源链接: HDU-6839

最后修改于 2020-10-25T23:34:50+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
2000/1000MS(Java/Others) 65536/65536K(Java/Others)