F题
由题意得,对于mex可分为三种情况,当字符串中只含有1时,mex最小,为0,当字符串中只含有0时,mex为1,当字符串中含有0和1时,mex最大,为2,所以要尽量让字符串中的01错开,整体思路就是将数量多的先排出来,然后将数量少的均匀的插入
#include <bits/stdc++.h>
using namespace std;
int main(){
    int t;cin>>t;
    while(t--){
        int a,b;cin>>a>>b;
        if(a==b){
            for(int i=1;i<=a;i++)
                cout<<0<<1;
            cout<<endl;
        }
        else if(a==0){
            for(int i=1;i<=b;i++)
                cout<<1;
            cout<<endl;
        }
        else if(b==0){
            for(int i=1;i<=a;i++)
                cout<<0;
            cout<<endl;
        }
        else if(a>b){
            int n=a/(b+1);
            int m=a%(b+1);
            for(int i=1;i<=m;i++){
                for(int j=1;j<=n+1;j++)
                    cout<<0;
                cout<<1;
            }
            for(int i=1;i<=b-m;i++){
                for(int j=1;j<=n;j++)
                    cout<<0;
                cout<<1;
            }
            for(int i=1;i<=a+b-m*(n+2)-(n+1)*(b-m);i++)
                cout<<0;
            cout<<endl;
        }
        else if(a<b){
            int n=b/(a+1);
            int m=b%(a+1);
            for(int i=1;i<=m;i++){
                for(int j=1;j<=n+1;j++)
                    cout<<1;
                cout<<0;
            }
            for(int i=1;i<=a-m;i++){
                for(int j=1;j<=n;j++)
                    cout<<1;
                cout<<0;
            }
            for(int i=1;i<=a+b-m*(n+2)-(n+1)*(a-m);i++)
                cout<<1;
            cout<<endl;
        }
    }
}