NC202003. 数颜色
描述
输入描述
第1行两个整数N,M,分别代表初始画笔的数量以及墨墨会做的事情的个数。第2 行N个整数,分别代表初始画笔排中第i支画笔的颜色。第3行到第2+M行,每行分 别代表墨墨会做的一件事情,格式见题干部分。
输出描述
对于每一个Query的询问,你需要在对应的行中给出一个数字,代表第L支画笔到 第R支画笔中共有几种不同颜色的画笔
示例1
输入:
6 5 1 2 3 4 5 5 Q 1 4 Q 2 6 R 1 2 Q 1 4 Q 2 6
输出:
4 4 3 4
说明:
对于100%的数据,N≤10000,M≤10000,修改操作不多于1000次,所有的输入 数据中出现的所有整数均大于等于1且不超过10^6。C++ 解法, 执行用时: 198ms, 内存消耗: 760K, 提交时间: 2021-09-21 02:17:56
#include <bits/stdc++.h> using namespace std; int a[10005]; bitset <1000005> s; signed main() { ios::sync_with_stdio(false); cin.tie(0); int n,q; cin >> n >> q; for(int i=1;i<=n;i++) cin >> a[i]; while(q--) { char op; int l,r; cin >> op >> l >> r; if(op=='Q') { int ans=0; for(int i=l;i<=r;i++) ans+=!s[a[i]],s[a[i]]=1; s.reset(); cout << ans << "\n"; } else a[l]=r; } return 0; }