题解 | #涂颜料#(C++)

涂颜料

https://www.nowcoder.com/practice/4ef038ae1c5f4524b8a8a0c1e6b062a1

解题方法:差分数组。需要注意对未涂色的判断(0表示未涂色)

#include <iostream>
using namespace std;
const int MAXN = 1e6+10;
int n;
int a[MAXN];
int main() {
    scanf("%d",&n);
    int q;
    scanf("%d",&q);
    while(q--){
        int l,r;
        scanf("%d%d",&l,&r);
        a[l]++;  //差分数组,a的前缀和表示多次区间修改后的值
        a[r+1]--;
    }
    for(int i=1;i<=n;++i){
        a[i] += a[i-1];
        if(a[i]==0)cout<<"O";
        else if(a[i]%3==0)cout<<"B";
        else if(a[i]%3==1)cout<<"R";
        else cout<<"G";
    }
    cout<<endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

要冲外企的祖国花朵很温柔:今年有签约礼盒嘛
点赞 评论 收藏
分享
12-13 17:58
门头沟学院 Java
牛客555364186号:你是Java 托吧
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务