• Codeforces 392 B Blown Garland


    题意:输入是由连续的RYGB和字符!组成的字符串,R代表红灯,Y代表黄灯,G代表绿灯,B代表蓝灯。简而言之,就是给定的字符串保证了下标对4取余相同的灯颜色都相同,但是有的地方为‘!’代表这个灯坏了,然后分别输出坏了的红、蓝、黄、绿灯的数量。

    分析:因为下标对4取余相同的灯颜色都相同,所以确定了前四个灯的颜色,后面的灯都是前四个灯颜色的不断循环,两个map映射一下就可以了。

    #include<bits/stdc++.h>
    #define Min(a, b) ((a < b) ? a : b)
    #define Max(a, b) ((a < b) ? b : a)
    const int INT_INF = 0x3f3f3f3f;
    const int INT_M_INF = 0x7f7f7f7f;
    const int dr[] = {0, 0, -1, 1, -1, -1, 1, 1};
    const int dc[] = {-1, 1, 0, 0, -1, 1, -1, 1};
    const int MOD = 1e9 + 7;
    const double pi = acos(-1.0);
    const double eps = 1e-8;
    const int MAXN = 100 + 10;
    const int MAXT = 500 + 10;
    using namespace std;
    char s[MAXN];
    map<int, char> mp;
    map<char, int> ma;
    int a[5];
    int main(){
        ma['R'] = 0;
        ma['B'] = 1;
        ma['Y'] = 2;
        ma['G'] = 3;
        while(scanf("%s", s) == 1){
            mp.clear();
            memset(a, 0, sizeof a);
            int len = strlen(s);
            for(int i = 0; i < len; ++i){//确定前四个灯的颜色
                if(i % 4 == 0 && s[i] != '!'){
                    mp[0] = s[i];
                }
                if(i % 4 == 1 && s[i] != '!'){
                    mp[1] = s[i];
                }
                if(i % 4 == 2 && s[i] != '!'){
                    mp[2] = s[i];
                }
                if(i % 4 == 3 && s[i] != '!'){
                    mp[3] = s[i];
                }
            }
            for(int i = 0; i < len; ++i){
                if(s[i] == '!'){
                    int t = i % 4;
                    char c = mp[t];//每个坏了的灯分别是什么颜色,并统计个数
                    ++a[ma[c]];
                }
            }
            printf("%d %d %d %d\n", a[0], a[1], a[2], a[3]);
        }
        return 0;
    }
  • 相关阅读:
    Codeforces Round #398 (Div. 2) B,C
    KMP模板
    HDU1711 KMP(模板题)
    HDU3265 线段树(扫描线)
    HDU2795 线段树
    HDU1828线段树(扫描线)
    HDU1832 二维线段树求最值(模板)
    HDU1698 线段树(区间更新区间查询)
    HDU3251 最大流(最小割)
    cf2.c
  • 原文地址:https://www.cnblogs.com/tyty-Somnuspoppy/p/6322645.html
Copyright © 2020-2023  润新知