1 条题解

  • 2
    @ 2024-12-21 23:51:52

    很明显,要想占用内存尽量大,就要把 01 Trie 的结点尽量摊开。

    根据数学直觉,当我们均匀选取整数时,01 Trie 的结点可以被最大限度地摊开。

    经过暴力检验,在本题的数据范围下,该结论是正确的。

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        freopen("memory.in", "r", stdin);
        freopen("memory.out", "w", stdout);
        int T;
        cin >> T;
        while (T--)
        {
            int x, y;
            cin >> x >> y;
            if (y == 1) cout << 0 << endl;
            else
            {
                int l = (1 << x) - 1;
                for (int i = 0; i <= y - 1; i++)
                    cout << 1ll * l * i / (y - 1) << ' ';
                cout << endl;
            }
        }
        return 0;
    }
    
    • 1

    信息

    ID
    118
    时间
    1000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    4
    已通过
    3
    上传者