这题理解是有点难的,所以直接用数学公式证明最好。首先,总子串数量为n,01串为m,1串为e,0为p,那么最大值为2m+p,也等于2(n-e-p)+p=2n-2e-p,所以其实是要0串最少,1串最少,所以要平均插入

#include<bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(false);cin.tie(0);
    int T;cin>>T;
    while(T--){
        int a,b;cin>>a>>b;
        string s;
        if(a==0)s=string(b,'1');
        else if(b==0)s=string(a,'0');
        else if(a>=b){
            int avg=a/(b+1),rem=a%(b+1);
            for(int i=0;i<b+1;++i){
                int cnt=avg;
                if(i<rem)cnt++;
                s+=string(cnt,'0');
                if(i<b)s+='1';
            }
        }else{
            int avg=b/(a+1),rem=b%(a+1);
            for(int i=0;i<a+1;++i){
                int cnt=avg;
                if(i<rem)cnt++;
                s+=string(cnt,'1');
                if(i<a)s+='0';
            }
        }
        cout<<s<<'\n';
    }
    return 0;
}