[CF254C]Anagram(2019-11-15考试)
题目大意
给你两个长度相同的字符串\(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考试)的更多相关文章
- 2019.11.15 JQ图片轮播
<div class="three"> <div class="bjtp"> <img class="bjpic b1& ...
- Sprint1(第二天11.15)
Sprint1(第二天11.15) Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http:// ...
- Notes of Daily Scrum Meeting(11.15)
Notes of Daily Scrum Meeting(11.15) 今天周六我们的主要工作是把这周落下的一些工作补回来,这是写程序的最后阶段,准备进入测试阶段了,所以之前的工作 要补齐,今天大家的 ...
- 11.15 Daily Scrum
今天是假期回来的第一个周末,也是我们团队的又一次进度汇总总结和调试工作开展,鉴于一周以来大家的工作有了很大的成果,所以,本次召开的会议主旨在于解决一些开发方面的细节问题,达成共识,为日后进一步的功能方 ...
- 2017.11.15 String、StringBuffer、StringBuilder的比较(todo)
参考来自:http://blog.csdn.net/jeffleo/article/details/52194433 1.速度 一般来说,三者的速度是:StringBuilder > Strin ...
- 2017-3-13 leetcode 4 11 15
ji那天居然早起了,惊呆我了,眼睛有点儿疼,一直流泪....继续保持 ========================================================== leetco ...
- 比较两个时间的大小 举例:CompareDate("12:00","11:15")
//比较两个时间的大小 举例:CompareDate("12:00","11:15") function CompareDate(t1, t2) { var d ...
- Python3.7&Django1.11.15 兼容性问题
环境: 1. Windows10 2. python3.7 3. Django1.11.15 启动Django时抛出以下异常: Unhandled exception in thread starte ...
- 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( ...
- [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)
更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...
随机推荐
- 记MacOS抹盘后--使用U盘安装MacOS实录
背景 纯属一时手贱,本想重装系统,结果直接把磁盘抹了,然后联网安装死活安不上.但这里仍然附上联网安装方法: 按键 描述 ⌘+R 重新安装您的 Mac 上装有的最新 macOS(建议操作). Optio ...
- Django使用Mysql已存在数据表的方法
在mysql数据库中已经存在有数据的表,自己又不想删除,下面方法可以同步django中创建的表 1.最好将自己建的表名改为前缀和django自动创建表名前缀相同,不改也可以,但是后期表太多容易混乱 2 ...
- atlas笔记
目录 环境 Mysql+Atlas配置 atlas:mysql-proxy扩展,mysql中间件,可以实现分表.分库(sharding版本).读写分离.数据库连接池等功能! Atlas类似于Twemp ...
- 超强的Lambda Stream流操作
原文:https://www.cnblogs.com/niumoo/p/11880172.html 在使用 Stream 流操作之前你应该先了解 Lambda 相关知识,如果还不了解,可以参考之前文章 ...
- frame标签和frameset
框架: 属性 值 描述 frameborder 0 1 规定是否显示框架周围的边框. longdesc URL 规定一个包含有关框架内容的长描述的页面. marginheight pixels 定义框 ...
- Linux传输指令-scp
本地传到远程 scp -rf bt.plist cjp@centos:~/下载 从远程下载到本地 scp -rf cjp@centos:~/下载 ~ 参数详解 参数 描述 -a 尽可能将档案状态.权限 ...
- Android 获取联系人的号码的类型描述
...... int index = phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); int t ...
- JAVA并发-同步器AQS
什么是AQS aqs全称为AbstractQueuedSynchronizer,它提供了一个FIFO队列,可以看成是一个用来实现同步锁以及其他涉及到同步功能的核心组件,常见的有:ReentrantLo ...
- ActiveMQ消息可靠性-事物
事物偏生产者,签收偏消费者 设置为true,需要手动提交 设置为false,自动提交 使用手动提交的好处就是可以回滚,当整个事物提交时,里面的某条失败了,可以事物回滚,于是保证了数据的一致性 ...
- [POJ1087]A Plug for UNIX
题目描述 Description You are in charge of setting up the press room for the inaugural meeting of the Uni ...