1 条题解

  • 0
    @ 2025-6-23 19:13:20

    数据范围才 5050,一看就是正解时间复杂度 O(n5)O(n^5) 或者 O(2n/2)O(2^{n/2}),但是有一个解是 O(n2logn)O(n^2 \log n),唐完了。

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int a,b,c;
        cin>>a>>b>>c;
        multiset<string>ms;
        while(a--)ms.insert("a");
        while(b--)ms.insert("b");
        while(c--)ms.insert("c");
        while(ms.size()>1){
            auto p=*(ms.begin())+*(--ms.end());ms.erase(ms.begin()),ms.erase(--ms.end()),ms.insert(p);
        }
        cout<<*(ms.begin());
    }
    
    • 1

    信息

    ID
    20219
    时间
    2000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    5
    已通过
    4
    上传者