Acwing第 12 场周赛【未完结】
目录
- 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 场周赛【未完结】相关推荐
- Acwing第 29 场周赛【完结】
TLE场 目录 4194. Pow[签到] 4195. 线段覆盖[离散化+差分] 4196. 最短路径[最短路] 4194. Pow[签到] https://www.acwing.com/proble ...
- Acwing第 21 场周赛【完结】
这场比赛是有史以来,最拉的一场.开始太慌了,第一题没看数据范围直接开始写.wa了四发后,才发现可以暴力. 第二题超时的模拟,规律一直没有找出来.总之,状态及其不好掉了大分.无语. 目录 3997. 整 ...
- Acwing第 18 场周赛【完结】
目录 3988. 不同的数[水题] 3989. 看图做题[难度: 一般 / 知识点: 找规律] 3990. 砍树[难度: 中 / 知识点: 贪心 思维 树的遍历] 3988. 不同的数[水题] htt ...
- Acwing第 39 场周赛【完结】
目录 4302. 元素分类[签到] 4303. 链表[链表] 4304. 字符串归类[并查集] 4302. 元素分类[签到] https://www.acwing.com/problem/conten ...
- Acwing第 38 场周赛【完结】
目录 4299. 删点[签到] 4300. 两种操作[BFS] 4301. 截断数列[枚举] 4299. 删点[签到] https://www.acwing.com/problem/content/4 ...
- Acwing第 37 场周赛【完结】
目录 4296. 合适数对[签到] 4297. 截断数组[双指针] 4298. 搭档[贪心] 4296. 合适数对[签到] https://www.acwing.com/problem/content ...
- Acwing第 36 场周赛【完结】
目录 4215. 处理字符串 4216. 图中的环[判环] 4217. 机器人移动[二分] 4215. 处理字符串 https://www.acwing.com/problem/content/421 ...
- Acwing第 35 场周赛【完结】
目录 4212. 字符串比较 4213. 最小结果[枚举] 4214. 三元组[思维] 4212. 字符串比较 https://www.acwing.com/problem/content/4215/ ...
- Acwing第 33 场周赛【完结】
目录 4206. 判断数字[水题] 4207. 最长合法括号子序列[思维] 4208. 电话号码[模拟] 4206. 判断数字[水题] #include<bits/stdc++.h> us ...
最新文章
- 关于 Rocksdb 性能分析 需要知道的一些“小技巧“ -- perf_context的“内功” ,systemtap、perf、 ftrace的颜值
- SQL操作的组成部分-数据控制
- unmappable character for encoding UTF8
- 一、linux驱动理论
- 直击阿里双11神秘技术:PB级大规模文件分发系统“蜻蜓”
- pytorch18种损失函数全详解
- 如何用DAX实现查看每个月中不同类别排名前一位,以及一个简单的svg案例
- Linux 安装MySql 5.7.21 操作步骤
- Javascript+css 实现网页换肤功能
- Day_05显示鼠标
- 利用Python进行数据分析——重要的Python库介绍
- BlueScreenView: 系统蓝屏分析工具
- 安卓脚本怎么实现在后台_用按键精灵录制微信自动摇一摇脚本
- 记一次爆破六位数密码(图书馆系统登录)
- java选中一行快捷键_java常用快捷键
- 故障:笔记本电脑部分按键失效
- vmware虚拟机centos7扩容
- 炒币碰到熊市的应对方法,炒币者的八大口诀
- 410款INTEL CPU详细技术资料速查表
- 金融经济学期末梳理(王江)第二、三章