[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博客将彻底不会使用!!!(带来不便,敬请谅解) ...
随机推荐
- 英语cabardine麝香cabardine单词
麝香(cabardine)是麝科动物林麝Moschus berezovskii Flerov. 马麝M. sifanicusPrzewalski或原麝M.moschiferus L.雄体香囊中的干燥分 ...
- 剑指:链表中倒数第k个节点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 解法 pre 指针走 k-1 步.之后 cur 指针指向 phead,然后两个指针同时走,直至 pre 指针到达尾结点. 即cur与pre始终相距 ...
- Docker在Centos 7上的部署
Docker在Centos 7上的部署 方法1---开启centos 7上自带的 extras YUM源,然后 yum install docker来安装 安装前必须保证 Linux Kernel ...
- python遇到的模块集合
J jieba jieba库是优秀的中文分词第三方库 ,它可以利用一个中文词库,确定汉字之间的关联概率将汉字间概率大的组成词组,形成分词结果,将中文文本通过分词获得单个的词语.jieba分词的三种模式 ...
- python库包大全(转)
python 库资源大全 转自: Python 资源大全中文版 环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python ...
- MySQL索引(九)
一.索引介绍 1.1 什么是索引 索引就好比一本书的目录,它会让你更快的找到内容. 让获取的数据更有目的性,从而提高数据库检索数据的性能. 分为以下四种: BTREE:B+树索引(基本上都是使用此索引 ...
- 【servlet】Servlet快速入门&使用Eclipse发布web项目
创建时间:6.15 1.什么是Servlet Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是ja ...
- 团队项目-Alpha版本发布1
此次作业的目的是让同学们在这个星期内完成团队项目α版本的第一次测试和发布,为发布下一次的 α版本做一个准备和前期检验. 1.作业要求: 提交一份α版本冲刺博客 2.博客要求: (1)请大家在作业开头添 ...
- Linux下使用cx_Oracle的一些配置
在安装完成cx_Oracle后,import cx_Oracle时报错,首先查看.bash_profile文件中环境变量配置 # .bash_profile # Get the aliases an ...
- FastDFS 分布式文件系统(部署和运维)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/KamRoseLee/article/det ...