#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; const int MAX=1e5+7; char s1[MAX],s2[MAX],s3[MAX]; char getdif(char a,char b){
for(int i=0;i<26;i++)
if('a'+i!=a&&'a'+i!=b) return 'a'+i;
} ///考虑的方式时,假设当前字符串与A字符串相同,则不同的贡献值为(0,1),如果与B相同,则贡献值为(1,0),否则为(1,1) int main(){
int n,t,cnt;
while(scanf("%d%d",&n,&t)!=EOF){
scanf("%s%s",s1+1,s2+1);
cnt=0;
for(int i=1;i<=n;i++)
if(s1[i]!=s2[i]) cnt++;
if(t>n||cnt>2*t){ ///可以发现,这两种情况是无解的
puts("-1");
continue;
}
int a,b;
if(cnt<=t) a=b=cnt;///当不同的个数少于等于要求的个数时,直接让a=b=cnt;
else
a=b=cnt/2+cnt%2;////如果在于,则可以把cnt先平分,剩下看奇偶
int lcnt=t-a;////看还差多少个可以满足,这时考虑(1,1)的方法
if(n-cnt<lcnt){///如果相同的个数<差的个数
lcnt+=lcnt-(n-cnt);///则需要从不同的个数里把原来只考虑(1,0)或(0,1)的情况改成(1,1)
cnt-=lcnt-(n-cnt);///从原来减去
a=b=cnt/2+cnt%2;///更改a,b
}
for(int i=1;i<=n;i++){
if(s1[i]==s2[i]){
if(lcnt) s3[i]=getdif(s1[i],s2[i]),lcnt--;
else s3[i]=s1[i];
}
}
for(int i=1;i<=n;i++){
if(s1[i]!=s2[i]){
if(lcnt){
s3[i]=getdif(s1[i],s2[i]),lcnt--;
cnt--;
continue;
}
if(cnt==a&&a==b) s3[i]=getdif(s1[i],s2[i]), cnt--,a--,b--;
else{
if(a>b) s3[i]=s1[i],a--; else s3[i]=s2[i],b--;
cnt--;
}
}
}
for(int i=1;i<=n;i++)
printf("%c",s3[i]);
printf("\n");
}
return 0;
}

  

CF #324 DIV2 C题的更多相关文章

  1. CF #324 DIV2 E题

    这题很简单,把目标位置排序,把目标位置在当前位置前面的往前交换,每次都是贪心选择第一个满足这样要求的数字. #include <iostream> #include <cstdio& ...

  2. CF #323 DIV2 D题

    可以知道,当T较大时,对于LIS,肯定会有很长的一部分是重复的,而这重复的部分,只能是一个block中出现次数最多的数字组成一序列.所以,对于T>1000时,可以直接求出LIS,剩下T-=100 ...

  3. CF #316 DIV2 D题

    D. Tree Requests time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  4. cf 442 div2 F. Ann and Books(莫队算法)

    cf 442 div2 F. Ann and Books(莫队算法) 题意: \(给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]\) 每次查询区间\([l,r]内有多少对(i, ...

  5. CF#345 div2 A\B\C题

    A题: 贪心水题,注意1,1这组数据,坑了不少人 #include <iostream> #include <cstring> using namespace std; int ...

  6. codeforces round 422 div2 补题 CF 822 A-F

    A I'm bored with life 水题 #include<bits/stdc++.h> using namespace std; typedef long long int LL ...

  7. codeforces round 421 div2 补题 CF 820 A-E

    A Mister B and Book Reading  O(n)暴力即可 #include<bits/stdc++.h> using namespace std; typedef lon ...

  8. Codeforces round 419 div2 补题 CF 816 A-E

    A Karen and Morning 水题 注意进位即可 #include<bits/stdc++.h> using namespace std; typedef long long i ...

  9. codeforces round 418 div2 补题 CF 814 A-E

    A An abandoned sentiment from past 水题 #include<bits/stdc++.h> using namespace std; int a[300], ...

随机推荐

  1. [Swift通天遁地]六、智能布局-(8)布局框架的使用:多分辨率适配和横竖屏布局

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. 自动调整速率的Actor设计模式

    问题背景 与数据库或者存储系统交互是所有应用软件都必不可少的功能之一,akka开发的系统也不例外.但akka特殊的地方在于,会尽可能的将所有的功能都设计成异步的,以避免Actor阻塞,然而无法避免IO ...

  3. 【洛谷4219】[BJOI2014]大融合(线段树分治)

    题目: 洛谷4219 分析: 很明显,查询的是删掉某条边后两端点所在连通块大小的乘积. 有加边和删边,想到LCT.但是我不会用LCT查连通块大小啊.果断弃了 有加边和删边,还跟连通性有关,于是开始yy ...

  4. 使用Jquery.form.js ajax表单提交插件弹出下载提示框

    现象: 使用jquery的from做ajax表单提交的时候,后台处理完毕返回json字符串,此时浏览器提示下载一个json文件而不是在success里面继续解析该json对象. 具体的原因: 浏览器兼 ...

  5. Jquery音频播放插件下载地址(有Html、JS、CSS、音频)

    有详细的html文件.全部JS代码文件.Css样式文件.测试音频资料 音频播放插件下载链接(百度云): http://pan.baidu.com/s/1pKC904F 提取码评论留邮箱发送,谢谢!

  6. WinForms_ListView中获取选中项数据值

    string value = listList.SelectedItems[0].SubItems[1].Text;//获取首行listview的值 string va = listList.Sele ...

  7. CSS——background综合运用

    搜索栏图标: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...

  8. RTL Compiler之synthesis steps

    1 synthesis steps 1) Search Paths rc:/> set_attribute lib_search_path path / rc:/> set_attribu ...

  9. dubbo之令牌验证

    防止消费者绕过注册中心访问提供者 在注册中心控制权限,以决定要不要下发令牌给消费者 注册中心可灵活改变授权方式,而不需修改或升级提供者 可以全局设置开启令牌验证 <!--随机token令牌,使用 ...

  10. Codeforces_733D

    D. Kostya the Sculptor time limit per test 3 seconds memory limit per test 256 megabytes input stand ...