题目大意

给你两个长度相同的字符串\(A,B\),要求改变字符串\(A\)中最少的字符,使得字符串\(A\)在排序后和字符串\(B\)相同。输出改变后的字符串\(A\),若多解,输出字典序最小的。\(|A|=|B|\leqslant10^5\)

题解

统计\(A\)和\(B\)中每种字符出现次数,肯定是把出现\(A\)中次数过多字符的改成不够的字符。首先,肯定按字典序从小到大改字符,然后根据字符大小,确定是把多的字符中后面部分改成一种字符还是把前面的一部分改成一种字符即可

卡点

C++ Code:

#include <cstdio>
#include <iostream>
#include <algorithm> int n, cntA[26], cntB[26], pos;
std::string A, B, T;
int main() {
std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
std::cin >> A >> B, n = A.length();
for (int i = 0; i < n; ++i) ++cntA[A[i] - 'A'];
for (int i = 0; i < n; ++i) ++cntB[B[i] - 'A'];
for (int i = 0; i < 26; ++i) {
for (int j = cntA[i]; j < cntB[i]; ++j)
T += static_cast<char> ('A' + i);
}
std::cout << T.length() << '\n';
for (int i = 0, c; i < n; ++i) {
c = A[i] - 'A';
if (cntA[c] > cntB[c]) {
if (T[pos] < A[i] || !cntB[c])
std::cout << T[pos], --cntA[c], --cntB[T[pos++] - 'A'];
else std::cout << A[i], --cntA[c], --cntB[c];
} else std::cout << A[i], --cntA[c], --cntB[c];
}
std::cout.put('\n');
return 0;
}

[CF254C]Anagram(2019-11-15考试)的更多相关文章

  1. 2019.11.15 JQ图片轮播

    <div class="three"> <div class="bjtp"> <img class="bjpic b1& ...

  2. Sprint1(第二天11.15)

    Sprint1(第二天11.15) Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http:// ...

  3. Notes of Daily Scrum Meeting(11.15)

    Notes of Daily Scrum Meeting(11.15) 今天周六我们的主要工作是把这周落下的一些工作补回来,这是写程序的最后阶段,准备进入测试阶段了,所以之前的工作 要补齐,今天大家的 ...

  4. 11.15 Daily Scrum

    今天是假期回来的第一个周末,也是我们团队的又一次进度汇总总结和调试工作开展,鉴于一周以来大家的工作有了很大的成果,所以,本次召开的会议主旨在于解决一些开发方面的细节问题,达成共识,为日后进一步的功能方 ...

  5. 2017.11.15 String、StringBuffer、StringBuilder的比较(todo)

    参考来自:http://blog.csdn.net/jeffleo/article/details/52194433 1.速度 一般来说,三者的速度是:StringBuilder > Strin ...

  6. 2017-3-13 leetcode 4 11 15

    ji那天居然早起了,惊呆我了,眼睛有点儿疼,一直流泪....继续保持 ========================================================== leetco ...

  7. 比较两个时间的大小 举例:CompareDate("12:00","11:15")

    //比较两个时间的大小 举例:CompareDate("12:00","11:15") function CompareDate(t1, t2) { var d ...

  8. Python3.7&Django1.11.15 兼容性问题

    环境: 1. Windows10 2. python3.7 3. Django1.11.15 启动Django时抛出以下异常: Unhandled exception in thread starte ...

  9. EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)

    传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...

  10. [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)

    更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...

随机推荐

  1. 26.Apache Solr RCE

    多事之秋,刚爆出来shiro的RCE,紧接着solr服务器就出了RCE 自从漏洞爆出来已经一段时间,复现漏洞多如牛毛,我这里来水一篇 漏洞简介 什么是solr服务器? Solr是一个独立的企业级搜索应 ...

  2. 个人项目-WC (java实现)

    一.Github地址:https://github.com/734635746/WC 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) ...

  3. idea万能快捷键,不可不知的17个实用技巧

    说明 IDEA里有一个万能快捷键(alt enter),功能非常强大,同一个快捷键,可以根据不同的语境提示你不同的操作,很多人可能还不了解这些功能,在处理代码的时候还手动处理,了解这些技巧之后,你编码 ...

  4. 配置OEL7 YUM源

    用于其他发行版如rhel.centos有时候要用到oracle linux的源来装软件比如oracle.mysql等 配置oel7源 wget http://public-yum.oracle.com ...

  5. Nginx 反向代理功能-动静分离

    Nginx 反向代理功能-动静分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  6. 04、rpm+yum+tar解压

    Linux 下安装软件: 1.rpm 软件包的安装 一般安装都用 rpm -ivh 包路径及名字 如:rpm -ivh /soft/RealPlayer11GOLD.rpm   --安装/soft下 ...

  7. SpringBoot全局Jackson配置未生效

    在做一个小项目,后台服务第一次用SpringBoot构建.接口使用Json格式,在application.properties中配置如下: spring.jackson.default-propert ...

  8. idea每次新建项目的默认路径

    idea每次新建项目的默认路径 每次新建项目的默认路径是上一次新建项目所在的文件夹.第一次需要手动切换.

  9. Django 购物车模板

    url from django.contrib import admin from django.urls import path, re_path from django.urls import i ...

  10. SDOI2010选做

    Round1 D1T1外星千足虫 \(BSOJ2793\)--高斯消元解异或方程组 简述 有\(n\)个数\(\{a_i\}\) 给出\(m\)个信息,每个信息给出\(\displaystyle{(\ ...