题解 | #【模板】差分#

【模板】差分

https://www.nowcoder.com/practice/4bbc401a5df140309edd6f14debdba42

对于修改区间,如果进行遍历修改的话时间会非常大。我个人愚以为差分的思想是只看区间左右的变化,我们只要关注到进入区间前的变化和离开区间后的变化即可。

for(int i=1;i<=m;++i){

        cin>>l>>r>>k;

        cf[l]+=k;

        cf[r+1]-=k//标记左右端点,进区间的变化要在离开区间时消除

    }

    for(int i=1;i<=n;++i){

        cf[i]+=cf[i-1];//将改变量在区间传递,放到输出时一并修改也行

}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务