施肥 题目描述: QAU是著名的农业大学,所以学校里的树很多。假设学校有n颗树,树按1~n编号排列。 一天,QAUer因为偷钓虹子湖的鱼被农学院的老师们抓住了,他惩罚QAUer为学校里的树施肥。老师们要求你去给给定区间的树施肥一次, 假设有m个老师,每个老师分别给定的施肥区间,并且要求你最后统计所有树的价值之和。我们规定单个树的价值等于树的编号乘以给它施肥的次数。如给第二颗树施肥三次,它的价值就是2 * 3 = 6。 QAUer算了很久,发现学校里的树太多了,他算不过来,请你编写程序帮他统计所有树的价值之和。 Input: 第一行输入二个数n,m代表树的总数目与有几位老师,接下来m行,每行输入两个数,代表第i位老师给定的区间。m <= n <= 2e5; Ouput: 输出1个数,代表在QAUer为每棵树施肥的之后,所有树的价值之和。 Sample input1 : 5 3 1 2 3 4 2 3 Sample output1 : 15 Sample input2 : 3 2 1 3 2 3 Sample output2 : 11
根据题意,我们可以知道每次都要对不同的区间进行修改操作,如果单纯暴力求解的话肯定会超时,所以想到差分区间,每次单点修改区间,最后求一下前缀和即可。同时注意数据范围,使用long long 数据类型防止爆int.