题目大意

给你两个长度相同的字符串\(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. 网商微信实名认证FAQ

    一.商户实名认证简介 基于监管政策.系统风控.用户体验等方面的考虑,我们需要加强对从业机构特约商户的风险管理,升级对商户客户身份识别的认证标准.因此,新入驻的从业机构特约商户要陆续按照新标准完成商户实 ...

  2. ECharts将折线变平滑和去掉点的属性(转载)曲线变圆滑

    本文链接:https://blog.csdn.net/sinat_36422236/article/details/62430114 series : [ { name:'your name', sy ...

  3. 源码安装rlwrap 0.43(为了方便使用linux下的sqlplus)

    为了linux下的sqlplus方便调用历史命令和退格,安装下rlwrap,最新版本是0.43,貌似作者已经不更新了 下载地址 https://fossies.org/linux/privat/rlw ...

  4. Mysql数据库之备份还原(mysqldump,LVM快照,select备份,xtrabackup)

    备份类型: 热备份:读写不受影响 温备份:仅可执行读备份 冷备份:离线备份,读写均不能执行,关机备份 物理备份和逻辑备份 物理备份:复制数据文件,速度快. 逻辑备份:将数据导出之文本文件中,必要时候, ...

  5. Nginx 核心配置-根目录root指令与别名alias指令实战案例

    Nginx 核心配置-根目录root指令与别名alias指令实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验环境说明 1>.虚拟机环境说明 [root@nod ...

  6. Centos6.5 下安装 tmux(免编译)

    环境:Centos6.5是新安装的,没有安装过其它的软件包.思路是安装epel的源后再安装tmux. yum install epel-release # 安装Linux的 epel 的yum源 yu ...

  7. woocommerce直接调取产品描述内容

    最近一位客户想让woocommerce产品页直接调取描述内容,不想太多的tab切换,太复杂,这个蛮简单的,woocommerce是在wordpress基础开发的,产品也是post的一种类型,直接调用c ...

  8. split分割字符串返回字符串数组

    <script type="text/javascript"> var str='liu jin yu'; var str1=str.split(' '); docum ...

  9. arguments简单函数 求整数递加和

    function add(n){if(n == 1) return 1;else return n + arguments.callee(n-1);alert(arguments.callee(1)) ...

  10. jdk,jre,jvm,openJdk

    1,jdk install: java_home: point to the installation directory of JDK, which is used by some java dev ...