解题思路:
标记增加和减少的位置,操作一波
注意事项:
如果只是输出单独一个,或者求其中的几个值,,,
emmmmmmmm
好像也可以这么算,,复杂度O(n*3)
只有发完一次求几个值,然后再发,再求,循环往复,,这种操作才不适用。。。
参考代码:
#include <iostream> using namespace std; int main() { int N, M, Li, Ri, Ci; int map[100001] = {0}; int ans = 0; cin >> N >> M; while (M--) { cin >> Li >> Ri >> Ci; map[Li] += Ci; map[Ri + 1] -= Ci; } for (int i = 1; i <= N; i++) { ans += map[i]; cout << ans << ' '; } return 0; }
0.0分
0 人评分
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1196 |
C语言程序设计教程(第三版)课后习题1.6 (C++代码)浏览:859 |
输出正反三角形 (C语言代码)格式错误!!!浏览:1125 |
C语言训练-求PI* (C语言代码)浏览:608 |
Cylinder (C语言描述+详细分析)浏览:3058 |
蚂蚁感冒 (C语言代码)浏览:716 |
C二级辅导-温度转换 (C语言代码)浏览:702 |
蛇行矩阵 (C语言代码)浏览:486 |
简单的a+b (C语言代码)浏览:398 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:545 |
ET 2019-10-06 21:22:33 |
测试样例改了。。。之前还是对的。。。
18信二孙笑柯 2019-10-08 10:17:14 |
我不知道,抱歉 抱歉 哈哈