酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用c++书写并通过这道题 # [jrksj r7] 铃音的第二分块 ## 题目描述 堀北铃音给了您一个长度为 $n$ 的序列 $a$,请您支持 $m$ 次操作: 1. 将 $[l,r]$ 区间中 $> x$ 的数减去 $x$。 2. 求 $[l,r]$ 区间中 $\le x$ 的数的个数。 ## 输入格式 **本题强制在线。** 第一行两个整数 $n,m$。 第二行 $n$ 个整数表示 $a$。 下面 $m$ 行,每行四个整数 $opt,l,r,x'$,$opt$ 表示操作编号,$x'$ 异或上次操作 $2$ 答案得到真实的 $x$。若此前没有操作 $2$,则不需要进行异或操作,真实的 $x$ 即为 $x'$。 ## 输出格式 对于所有操作 $2$,每行输出一个整数表示答案。 ## 样例 #1 ### 样例输入 #1 ``` 10 10 20 10 20 14 4 15 11 20 2 13 2 5 9 1 1 7 8 2 1 2 3 8 1 4 6 12 2 1 7 9 2 2 7 20 2 3 9 4 2 8 9 7 1 3 10 0 2 8 9 7 `

```c++ #include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < m; i++) { int opt, l, r, x_prime; cin >> opt >> l >> r >> x_prime; if (opt == 1) { for (int j = l - 1; j < r; j++) { if (a[j] > x_prime) { a[j] -= x_prime; } } } else { int count = 0; for (int j = l - 1; j < r; j++) { if (a[j] <= x_prime) { count++; } } cout << count << endl; } } return 0; } ``` [2024-07-18 21:05:15 | AI写代码神器 | 500点数解答]

相关提问