zoukankan      html  css  js  c++  java
  • CodeForces 909D Colorful Points

    题解:

    暴力,模拟。

    把字符串压缩一下,相同的处理成一位,记录下个数,然后暴力模拟即可。

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 1e6 + 10;
    char s[maxn];
    
    struct X {
      char id;
      int num;
    }p[maxn], q[maxn];
    int sz;
    
    void work() {
      for(int i = 0; i <= sz; i ++) {
        if(i == 0 || i == sz) {
          p[i].num --;
        } else {
          p[i].num --;
          p[i].num --;
        }
      }
      int cnt = 0;
      for(int i = 0; i <= sz; i ++) {
        if(p[i].num <= 0) continue;
        q[cnt ++] = p[i];
      }
      sz = 0;
      p[0] = q[0];
      for(int i = 1; i < cnt; i ++) {
        if(q[i].id == p[sz].id) p[sz].num += q[i].num;
        else {
          sz ++;
          p[sz] = q[i];
        }
      }
    }
    
    int main() {
      scanf("%s", s);
      p[sz].id = s[0];
      p[sz].num = 1;
      for(int i = 1; s[i]; i ++) {
        if(s[i] == p[sz].id) p[sz].num ++;
        else  {
          sz ++;
          p[sz].id = s[i];
          p[sz].num = 1;
        }
      }
      int ans = 0;
      while(1) {
        if(sz == 0) break;
        work();
        ans ++;
      }
      printf("%d
    ", ans);
      return 0;
    }
    
  • 相关阅读:
    算法笔记--支配树
    51Nod 1187 寻找分数
    ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer
    ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare
    HDU
    HDU
    Codeforces 1011E
    Codeforces 990D
    Codeforces 989C
    Codeforces 932E
  • 原文地址:https://www.cnblogs.com/zufezzt/p/8185303.html
Copyright © 2011-2022 走看看