F 爱音的01串构造

要使得mex之和最大,则全1子串的数量要最少,即让全1子串的最大长度最小;

1多0少(a>b):以‘0’为间隔,将‘1’分成a+1份,全0子串的数量恰好为a

0多1少(a<b):以‘1’为间隔,将‘0’分成b+1份,全1子串的数量恰好为b

01一样多(a=b):按照01排列

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int T;
    cin>>T;
    while(T--){
        int a,b;
        cin>>a>>b;
        string s;
        if(a==b){
            for(int i=0;i<a;i++){
                s+="01";
            }
        }else{
            char c0='0',c1='1';
            if(a<b){
                swap(a,b);//交换数量,使得a始终存储教的的数
                swap(c0,c1);//交换字符,保持对应关系
            }
            int x=a/(b+1);
            int y=a%(b+1);
            for(int i=0;i<b+1;i++){
                s+=string(x+(y>0),c0);
                if(y>0) y--;
                s+=c1;
            }
            s.pop_back();//去除末尾多加的c1
        }   
        cout<<s<<"\n";
    }
    return 0;
}

I 初华的扭蛋机

下注一枚筹码的期望是负的,低于不下注的期望收益0,

因此不下注是最优解

#include <bits/stdc++.h>
using namespace std;
int main()
{
    cout<<"######";
    return 0;
}