cf round 598div3 D.Binary String Minimizing
2024-09-01 18:44:39
题目:https://codeforces.com/contest/1256/problem/D
题意:给你长度为n的01串,能将任意两相邻字符交换k次,求最小字典序的交换结果。
思路:贪心...甚至不用二分...贴一发简短的代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,p=;
long long k;
char ch[maxn]={};
scanf("%d%lld",&n,&k);
scanf("%s",ch);
for(int i=;i<n;i++)
{
if(ch[i]=='')
{
if(k>i-p)swap(ch[i],ch[p]),k-=i-p;
else {swap(ch[i],ch[i-k]);break;}
p++;
}
}
printf("%s\n",ch);
}
return ;
}
最新文章
- 2014 39th ACM-ICPC 北京赛区 总结
- Jquery揭秘系列:ajax原生js实现
- [Xamarin] 客製化的ListView之章 (转帖)
- 【干货分享】Google 的设计准则,素材和资源
- 仿SDWebImage
- (转)c &; c++内存分配
- iOS Instruments内存检测使用
- ARM指令集——数据处理指令
- SQL Server 通过SQL脚本启动Broker并设置兼容性
- 【神经网络篇】--基于数据集cifa10的经典模型实例
- ansible笔记(9):常用模块之包管理模块
- nested exception is java.lang.ClassNotFoundException
- Python内置函数之匿名(lambda)函数
- 【JVM】jvm的jps命令
- [CLPR] 定位算法探幽 - 边缘和形态学
- java实现fp-growth算法
- javascript库概念与连缀
- Leetcode: Best Time to Buy and Sell Stock I, II
- 解决循环里map不被重复覆盖的问题
- OSCP考试回顾