讨论/题目交流/🐱 第 20 场夜喵双周赛/
🐱 第 20 场夜喵双周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

3 分 - 根据数字二进制下 1 的数目排序
4 分 - 每隔 n 个顾客打折
5 分 - 包含所有三种字符的子字符串数目
6 分 - 有效的快递序列数目

展开讨论

第三题题解
基本上是做前缀的dp,分别统计前缀只包含"a"、"b"、"c"、"ab"、"ac"、"bc"、"abc"的情况,存在dp[7]中,状态更新如下

switch(s[i]){
    case 'a':
        dp[A]++;
        dp[AB] += dp[B]; dp[B] = 0;
        dp[AC] += dp[C]; dp[C] = 0;
        dp[ABC] += dp[BC]; dp[BC] = 0;
        break; //没加break!!!!
    case 'b':
        dp[B]++;
        dp[AB] += dp[A]; dp[A] = 0;
        dp[BC] += dp[C]; dp[C] = 0;
        dp[ABC] += dp[AC]; dp[AC] = 0;
        break;
    case 'c':
        dp[C]++;
        dp[AC] += dp[A]; dp[A] = 0;
        dp[BC] += dp[B]; dp[B] = 0;
        dp[ABC] += dp[AB]; dp[AB] = 0;
        break;
}

sum += dp[ABC];

欢迎各位大大评论

展开全部 22 讨论