1 条题解

  • 0
    @ 2025-11-17 21:12:13

    别样的贪心

    感性证明是对的

    首先答案一定小于等于 33。观察答案组成:AB 贡献+ BC 贡献 + AC 贡献。首先 A 串至少选择 11 个,那就只按 A 串第一个字符算贡献。然后枚举 B 串和 C 串的起始位置。也只按其实位置算就行了。于是有O(n2)O(n^2) 做法。

    for(int i=2;i<=n-1;i++){
            for(int j=i+1;j<=n;j++){
                int cnt=0;
                cnt+=(s1[1]==s2[i]);
                cnt+=(s1[1]==s3[j]);
                cnt+=(s2[i]==s3[j]);
                ans=min(ans,cnt);
            }
        }
    

    O(n)O(n) 做法就是在以上瞎优化,可以从前到后扫一遍再从后到前扫一遍。

    • 1

    信息

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