当前位置: 首页 > news >正文

xtuoj 0x05-A 前缀和

题目

思路

本来采用的是最简单的方法,对他要操作的区间,用循环一个一个操作的,但是很明显超时啦。所以我就想到了可以对一段连续的区间批量进行加减操作,就是差分数组,然后用deepseek直接搜差分数组,然后get到三个点,第一个点就是差分数组怎么形成的,就是diff[i]=a[i]-a[i-1];第二个点是我想对 l 到 r 区间每个数都加上 d 怎么操作,就直接diff[l]+=d,diff[r+1]-=d;第三个点就是怎么还原数组,a[i]=a[i-1]+diff[i]。最后我们要求的是前缀和数组,再累加就好了,就是a[i]+=a[i-1],最后输出a[i]就好了,注意格式要求。

代码

#include<stdio.h>
#define N 100010
#define ll long longint n,m,l,r,d;
ll a[N],diff[N];int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%lld",&a[i]);diff[0]=0;for(int i=1;i<=n;i++) diff[i]=a[i]-a[i-1];while(m--){scanf("%d%d%d",&l,&r,&d);diff[l]+=d;diff[r+1]-=d;}a[0]=diff[0];for(int i=1;i<=n;i++) a[i]=a[i-1]+diff[i];for(int i=1;i<=n;i++) a[i]+=a[i-1];printf("%lld",a[1]);for(int i=2;i<=n;i++) printf(" %lld",a[i]);printf("\n");return 0;
}

http://www.dtcms.com/a/394366.html

相关文章:

  • 防误删 (实时) 文件备份系统 (btrfs 快照 + rsync)
  • 【FreeRTOS】第七课(1):任务间通信(使用队列)
  • OD C卷 - 二叉树计算
  • DiffDock 环境安装和使用教程
  • NVIC中的不可屏蔽中断NMI(Non-Maskable Interrupt)是什么?
  • TypeORM 浅析
  • 2.4 死锁 (答案见原书 P165)
  • 算法与数据结构:常见笔试题总结
  • trae使用playwright MCP方法流程
  • anaconda安装tensorflow遇到的一个错误
  • 不同浏览器对 http.server 提供MP4 文件支持差异分析
  • Python 实战:内网渗透中的信息收集自动化脚本(10)
  • leetcode 206 反转链表
  • AI智能的网站SEO优化服务商
  • 生产者客户端
  • Puppeteer 在爬取电商 JavaScript 页面的使用
  • 2015/12 JLPT听力原文 问题四
  • 【设计模式】备忘录模式
  • STM32_07_按键
  • 基于迁移学习和SqueezeNet的滚动轴承故障诊断(MATLAB)
  • 实战项目(十二:《AI画质增强与LED驱动控制:一场关于‘创造’与‘还原’的对话》):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • 开发避坑指南(52):IDEA 2025.1.3 顶部显示类完整路径的设置方法
  • 安装Qt新之后出现两本帮助手册
  • Rust_2025:阶段1:day7.2unsafe , 链接相关
  • 【论文速递】2025年第15周(Apr-06-12)(Robotics/Embodied AI/LLM)
  • 设计模式简单说明:责任链与规则树
  • 自动备份脚本 mysql_hourly_backup.sh
  • SuperGLUE:自然语言理解的挑战与进步
  • 线程安全的单例模式、自旋锁,以及读者写者问题
  • U盘长期插在电脑上的影响