思路:

首先简单观察后可得:10为2,全0为1,全1为0.所以我们要多10,当a=b时输出a个10就可以了。然后我们可以发现,要尽可能的减少全1的位数,所以当b>a时,要用每一个a把b尽量均匀的分开,反之同理,这样就减少了连续1的位数。

代码:

#include<bits/stdc++.h>
using namespace std;
void slove() {
    int a,b; cin>>a>>b;
    if(a==b) {
        for(int i=1;i<=a;i++) cout<<"10";
        cout<<endl;
    }
    else if(a<b) {
        int k=b/(a+1);
        int d=b%(a+1);
        string s; 
        for(int i=1;i<=a;i++) {
            for(int j=1;j<=k;j++) s+='1';
            if(i<=d) s+='1';
            s+='0';
        }
        for(int i=1;i<=k;i++ ) s+='1';
        cout<<s<<endl;
    }
    else if(a>b) {
        int k=a/(b+1);
        int d=a%(b+1);
        string s;
        for(int i=1;i<=b;i++) {
            for(int j=1;j<=k;j++) s+='0';
            if(i<=d) s+='0';
            s+='1';
        }
        for(int i=1;i<=k;i++ ) s+='0';
        cout<<s<<endl;
    }
}
int main() {
   int t; cin>>t;
    while(t--) {
        slove();
    }
}