小塔有一个长为n的只由0和1组成的串s,他需要恰好对s执行k次交换操作。小塔想要使得s的字典序最小,
请你帮帮他求出最小字典序的s吧。 选择两个不同的下标并交换这两个位置上的值称为一次交换,使用数学的方式描述,即选择和j(1≤i<j≤n)并交换si和sj。 当且仅当满足以下条件之一时,字符串a按字典顺序小于字符串b:
对于给定的字符串,算出字符串中0的个数,1的个数,记d为min({0的个数,1的个数,k})那么最多将从前往后数d个1与从后往前数d个0交换,注意当n为2时,因为要恰好交换k次所以当k为奇数时,01这种字符串得交换一次成10
c++
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
void solve() {