CF1370E.Binary Subsequence Rotation
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Naman has two binary strings s and t of length n (a binary string is a string which only consists of the characters "0" and "1"). He wants to convert s into t using the following operation as few times as possible.
In one operation, he can choose any subsequence of s and rotate it clockwise once.
For example, if s=1110100, he can choose a subsequence corresponding to indices (1-based) 2,6,7 and rotate them clockwise. The resulting string would then be s=1010110.
A string a is said to be a subsequence of string b if a can be obtained from b by deleting some characters without changing the ordering of the remaining characters.
To perform a clockwise rotation on a sequence c of size k is to perform an operation which sets c1:=ck,c2:=c1,c3:=c2,…,ck:=ck−1 simultaneously.
Determine the minimum number of operations Naman has to perform to convert s into t or say that it is impossible.
纳曼有两条长度为 n 的二进制字符串 s 和 t(二进制字符串仅由字符 "0" 和 "1" 构成)。他希望用尽可能少的操作次数将 s 转换为 t。
每次操作中,他可以任选 s 的一个子序列,并将其顺时针旋转一次。
例如,若 s=1110100,他可选取对应下标(从 1 开始计数)为 {2,6,7} 的子序列并进行顺时针旋转,结果字符串变为 s=1010110。
字符串 a 称为字符串 b 的子序列,当且仅当 a 可通过从 b 中删除若干字符(不改变其余字符的相对顺序)而得到。
对长度为 k 的序列 c 进行一次顺时针旋转,是指同时执行如下赋值操作:c1:=ck, c2:=c1, c3:=c2, …, ck:=ck−1。
请确定将 s 转换为 t 所需的最少操作次数;若不可能实现,则说明这一点。
输入格式
The first line contains a single integer n (1≤n≤106) — the length of the strings.
The second line contains the binary string s of length n.
The third line contains the binary string t of length n.
第一行包含一个整数 n (1≤n≤106) —— 字符串的长度。
第二行包含一个长度为 n 的二进制字符串 s。
第三行包含一个长度为 n 的二进制字符串 t。
输出格式
If it is impossible to convert s to t after any number of operations, print −1.
Otherwise, print the minimum number of operations required.
如果经过任意次数的操作都无法将 s 转换为 t,则输出 −1。
否则,输出所需的最少操作次数。
输入输出样例
输入#1
6 010000 000001
输出#1
1
输入#2
10 1111100000 0000011111
输出#2
5
输入#3
8 10101010 01010101
输出#3
1
输入#4
10 1111100000 1111100001
输出#4
-1
说明/提示
In the first test, Naman can choose the subsequence corresponding to indices 2,6 and rotate it once to convert s into t.
In the second test, he can rotate the subsequence corresponding to all indices 5 times. It can be proved, that it is the minimum required number of operations.
In the last test, it is impossible to convert s into t.
在第一个测试用例中,Naman 可以选择对应下标 {2,6} 的子序列,并将其旋转一次,从而将 s 转换为 t。
在第二个测试用例中,他可以将对应所有下标的子序列旋转 5 次。可以证明,这是所需的最少操作次数。
在最后一个测试用例中,无法将 s 转换为 t。
输入解题思路,AI测评打分。不知道怎么写?