给你一个数 要求构造 个互不为子串的长度 串,并且要求 最大

简单思考之后不难发现,除了的情况以外答案的
一种可行的构造是,,,
的情况特判一下
复杂度

#include <bits/stdc++.h>
#define LL long long
using namespace std;
int n;
int main(){
    cin >> n;
    if (n == 1){
        cout << 1 << '\n';
        cout << 1 << '\n';
        return 0;
    }
    if (n == 2){
        cout << 2 << '\n';
        cout << 0 << '\n';
        cout << 11 << '\n';
        return 0;
    }
    if (n == 3){
        puts("2");
        puts("00");
        puts("111");
        return 0;
    }
    cout << n-1 << '\n';
    cout << "00\n";
    for (int i = 3; i <= n; ++i){
        cout << 0;
        for (int j = 1; j <= i-2; ++j) cout << 1;
        cout << 0;
        cout << '\n';
    }
    return 0;
}