题解 | #涂颜料#
涂颜料
https://www.nowcoder.com/practice/4ef038ae1c5f4524b8a8a0c1e6b062a1
// 模拟一定会超时! #include <bits/stdc++.h> using namespace std; const int max_len = 1e6+10; int pre[max_len]; int n,q; int main(){ cin >> n >> q; while(q--){ int l,r; cin >> l >> r; pre[l]++; pre[r+1]--; } for(int i = 1; i <= n; i++) pre[i] += pre[i-1]; // 通过求差分数组额前缀和获得每个元素应该的值! for(int i = 1; i <= n; i++){ if(pre[i] == 0){ putchar('O'); }else { if(pre[i] % 3 == 1) putchar('R'); else if(pre[i] % 3 == 2) putchar('G'); else putchar('B'); } } return 0; }