目录

  • 3803. 数组去重 【难度: 一般 / 知识点: 模拟】
  • 3804. 构造字符串 【难度: 一般 / 知识点: 贪心 模拟】

3803. 数组去重 【难度: 一般 / 知识点: 模拟】

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
const int inf=0x3f3f3f3f;
int a[N];
int main(void)
{int t; cin>>t;while(t--){int n; cin>>n;map<int,int>mp;for(int i=0;i<n;i++) cin>>a[i],mp[a[i]]++;cout<<mp.size()<<endl;for(int i=0;i<n;i++){if(mp[a[i]]==1) cout<<a[i]<<" ";else mp[a[i]]--;}cout<<endl;}return 0;
}

3804. 构造字符串 【难度: 一般 / 知识点: 贪心 模拟】


用一个vector来保存一下字符的集合。
如果要构造的字符串长于给定的字符串,直接前面一样,后面补最小的字母即可。
如果构造的字母要短于,给定的字符,则直接前面一模一样,然后从后往前依次遍历集合找到可以替换的即可。
替换过后,后面的都用最小的字母来补齐。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
const int inf=0x3f3f3f3f;
int t,n,k;
map<char,int> mp;
string s;
string dfs(int n,int k,vector<char> ve)
{string ans=s;if(k<=n){bool flag=false;ans=s.substr(0,k);int index=0;for(int i=ans.size()-1;i>=0;i--){for(int j=0;j<ve.size();j++){if(ve[j]>ans[i]){ans[i]=ve[j];flag=true;index=i;break;}if(flag) break;}if(flag) break;}for(int i=index+1;i<ans.size();i++) ans[i]=ve[0];return ans;}else{for(int i=1;i<=k-n;i++) ans+=ve[0];return ans;}
}
int main(void)
{cin>>t;while(t--){cin>>n>>k;cin>>s;vector<char> ve;for(int i=0;i<s.size();i++) {if(mp[s[i]]) continue;else ve.push_back(s[i]),mp[s[i]]++;}sort(ve.begin(),ve.end());string ans=dfs(n,k,ve);cout<<ans<<endl;mp.clear(); s.clear();}return 0;
}

Acwing第 12 场周赛【未完结】相关推荐

  1. Acwing第 29 场周赛【完结】

    TLE场 目录 4194. Pow[签到] 4195. 线段覆盖[离散化+差分] 4196. 最短路径[最短路] 4194. Pow[签到] https://www.acwing.com/proble ...

  2. Acwing第 21 场周赛【完结】

    这场比赛是有史以来,最拉的一场.开始太慌了,第一题没看数据范围直接开始写.wa了四发后,才发现可以暴力. 第二题超时的模拟,规律一直没有找出来.总之,状态及其不好掉了大分.无语. 目录 3997. 整 ...

  3. Acwing第 18 场周赛【完结】

    目录 3988. 不同的数[水题] 3989. 看图做题[难度: 一般 / 知识点: 找规律] 3990. 砍树[难度: 中 / 知识点: 贪心 思维 树的遍历] 3988. 不同的数[水题] htt ...

  4. Acwing第 39 场周赛【完结】

    目录 4302. 元素分类[签到] 4303. 链表[链表] 4304. 字符串归类[并查集] 4302. 元素分类[签到] https://www.acwing.com/problem/conten ...

  5. Acwing第 38 场周赛【完结】

    目录 4299. 删点[签到] 4300. 两种操作[BFS] 4301. 截断数列[枚举] 4299. 删点[签到] https://www.acwing.com/problem/content/4 ...

  6. Acwing第 37 场周赛【完结】

    目录 4296. 合适数对[签到] 4297. 截断数组[双指针] 4298. 搭档[贪心] 4296. 合适数对[签到] https://www.acwing.com/problem/content ...

  7. Acwing第 36 场周赛【完结】

    目录 4215. 处理字符串 4216. 图中的环[判环] 4217. 机器人移动[二分] 4215. 处理字符串 https://www.acwing.com/problem/content/421 ...

  8. Acwing第 35 场周赛【完结】

    目录 4212. 字符串比较 4213. 最小结果[枚举] 4214. 三元组[思维] 4212. 字符串比较 https://www.acwing.com/problem/content/4215/ ...

  9. Acwing第 33 场周赛【完结】

    目录 4206. 判断数字[水题] 4207. 最长合法括号子序列[思维] 4208. 电话号码[模拟] 4206. 判断数字[水题] #include<bits/stdc++.h> us ...

最新文章

  1. 关于 Rocksdb 性能分析 需要知道的一些“小技巧“ -- perf_context的“内功” ,systemtap、perf、 ftrace的颜值
  2. SQL操作的组成部分-数据控制
  3. unmappable character for encoding UTF8
  4. 一、linux驱动理论
  5. 直击阿里双11神秘技术:PB级大规模文件分发系统“蜻蜓”
  6. pytorch18种损失函数全详解
  7. 如何用DAX实现查看每个月中不同类别排名前一位,以及一个简单的svg案例
  8. Linux 安装MySql 5.7.21 操作步骤
  9. Javascript+css 实现网页换肤功能
  10. Day_05显示鼠标
  11. 利用Python进行数据分析——重要的Python库介绍
  12. BlueScreenView: 系统蓝屏分析工具
  13. 安卓脚本怎么实现在后台_用按键精灵录制微信自动摇一摇脚本
  14. 记一次爆破六位数密码(图书馆系统登录)
  15. java选中一行快捷键_java常用快捷键
  16. 故障:笔记本电脑部分按键失效
  17. vmware虚拟机centos7扩容
  18. 炒币碰到熊市的应对方法,炒币者的八大口诀
  19. 410款INTEL CPU详细技术资料速查表
  20. 金融经济学期末梳理(王江)第二、三章

热门文章

  1. Netty源码 服务端的启动
  2. Timus 1204 Idempotents
  3. linux系统vsftpd登陆慢卡怎么办
  4. 数据库行转列的sql语句(zt)
  5. 查看SSID的mac地址
  6. ESP8266固件的下载
  7. 区块链BaaS云服务(5)金丘科技 海星链
  8. 机器学习+算法考试有感 2019 山东大学
  9. JavaScript之事件
  10. MySQL—三表查询