```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, q; cin >> n >> q; vector<int> flowers(n + 1, 0); for (int i = 0; i < q; i++) { int L, R; cin >> L >> R; for (int j = L; j <= R; j++) { flowers[j]++; } } for (int i = 1; i <= n; i++) { cout << flowers[i] << " "; } cout << endl; return 0; } ``` 🔍 **代码解析** - 使用 `vector<int> flowers(n + 1, 0)` 创建数组,索引从1到n,初始浇水次数为0。 - 循环读取q轮浇水指令,每轮通过内层循环将区间[L, R]内每朵花的浇水次数加1。 - 最后遍历输出每朵花的浇水次数。 ⚠️ **注意事项** - 输入格式:第一行两个整数n和q,接下来q行每行两个整数L和R。 - 时间复杂度为O(n*q),在n<100且q不大时可行。 - 若n和q较大,可使用差分数组优化至O(n+q)。 ######[AI问答 | 302点数解答 | 2026-03-20 21:36:54]
相关提问