CSPSMK13A. 序列翻转(seq)

提交1 通过1
通过率100%
文件IO启用
输入文件seq.in
输出文件seq.out
时间限制2000ms
内存限制512MiB
    ID: 14623 传统题 文件IO 输入文件:seq.in 输出文件:seq.out 2000ms 512MiB 尝试: 1 已通过: 1 难度: 普及 上传者: 标签>一维差分贪心

题目描述

题目描述

汇总的题面 pdf 放到了本题的附加文件中。

给定正整数 nn 和两个长度为 nn 的 01\tt 01 串 SS 和 TT。每次你可以选择一个长度为 kk 的区间 [p,p+k−1][p,p+k-1],将 S[p⋯p+k−1]S[p \cdots p+k-1](也就是 S[p],S[p+1],⋯ ,S[p+k−1]S[p],S[p+1],\cdots,S[p+k-1])01\tt 01 翻转(0\tt 0 变成 1\tt 1,1\tt 1 变成 0\tt 0)。

请你求出,最少用多少次操作可以把 SS 变为 TT,或者指出不可能做到(此时输出 -1)。

输入格式

第一行两个整数 n,kn,k,分别表示两个 01\tt 01 串的长度与每次操作的区间长度。

第二行、第三行各有一个长度为 nn 的 01\tt 01 串,表示 SS 和 TT。

输出格式

一行一个整数,表示答案。

输入样例 #1

6 3
000000
110110

输出样例 #1

2

输入样例 #2

8 3
00000000
10010010

输出样例 #2

-1

说明提示

对于所有的数据,1≤n≤1061 \le n \le 10^6。

数据点编号 n≤n \le k≤k \le 特殊性质
1∼81 \sim 8 1010 无
9∼129 \sim 12 10410^4 10310^3
13,1413,14 10610^6 22
15,1615,16 10610^6 k≥n−10k \ge n-10
17∼2017 \sim 20 无

本站补充:原套别:第 13 套 A 题。