文章

82

粉丝

344

获赞

28

访问

702.6k

头像
差分+前缀和
P1209
发布于2021年2月1日 20:26
阅读数 10.6k

#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
using namespace std;
/*
    思路:
        题型:某一个区间同时加减一个数--->差分
        差分数组d不用专门求出来 只求差分的变化再求个前缀和就行 
        
        (1)求对应的差分变化--->a 
        (2)求a对应的前缀和 
        (1)(2)处理后的a数组就是结果 
*/ 
int a[200005]; 
int main(){
    int x,y;
    while(scanf("%d %d",&x,&y)){
        if(x==0&&y==0) break;
        //差分只改变l和r+1; 
        a[x]++;
        a[y+1]--;
    }
    //前缀和  打表 
    for(int i=0;i<=200000;i++)...

登录查看完整内容


登录后发布评论

3 条评论
山楂
2021年2月25日 16:02

大佬,这个差分是怎么定义的,表示什么的,还有加前缀和,又是表示什么呀?

 

赞(0)

山楂 : 回复 山楂: a数组好像越界了,a[-1]

2021年2月25日 16:19

James : 回复 山楂: 前缀是前缀和 比如a[i]表示a[0]+a[1}+a[2]..... 差分是差分数组 ,用来实现对于数组某一个范围整体进行加减

2021年3月1日 08:53