基础算法:前缀和

2023-11-12

/*
    前缀和
    
    定义:s[i]表示原数组前i个数的和
    
    作用:求任意区间[l, r]的和的时间复杂度从循环加的O(n) 到 s[r] - s[l-1] 的时间复杂度O(1)
    
    eg: s[3] = a1 + a2 + a3;
        s[5] = a1 + a2 + a3 + a4 + a5;
        s[4, 5] = s[5] - s[3];//前五个数减去前三个数
    
    为了统一公式,把s[0]设为0
    eg:s[3] = s[1, 3] = s[3] - s[0]; 
*/

#include <iostream>
using namespace std;

const int N = 1e5 + 10;//比题目设置的最大值再大一点,防止发生数组越界问题

int n, m;
int a[N], s[N];

int main()
{
    scanf("%d %d", &n, &m);
    
    //原数组
    for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
    
    //求前缀和数组
    s[0] = 0;
    for(int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
    
    while(m--)
    {
        int l, r;
        scanf("%d %d", &l, &r);
        printf("%d\n", s[r] - s[l - 1]);
    }
        
    return 0;
}







本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基础算法:前缀和 的相关文章

  • boost::asio + std::future - 关闭套接字后访问冲突

    我正在编写一个简单的 TCP 客户端来发送和接收单行文本 异步操作由 std future 处理 以便于超时阻塞查询 不幸的是 我的测试应用程序在破坏服务器对象时因访问冲突而崩溃 这是我的代码 TCP客户端 hpp ifndef TCPCL
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大

随机推荐

  • Vulkan同步机制和图形-计算-图形转换的风险(一)

    在现代渲染环境中 很多情况下在一个数据帧期间会产生计算负荷 在GPU上计算通常 非固定功能 是并行编程的 通常用于具有挑战性 完全不可能或仅通过标准图形管道 顶点 几何 细化 栅格 碎片 实现的效率低下的技术 一般情况下 计算在实现技术方面
  • scrollIntoView() 方法实现元素滚动

    TOC scrollIntoView 方法实现元素滚动 element scrollIntoView Element 接口 dom元素 的 scrollIntoView 方法会滚动元素的父容器 使被调用 scrollIntoView 的元素
  • python更多语法

    本文译自https docs python org 2 7 tutorial 完全是出于个人兴趣翻译的 请勿追究责任 另外 谢绝商业牟利 刊印请与本人和原作者联系 无授权不得刊印 违者必究其责任 如需转发 请注明来源 并保留此行 尊重本人的
  • Mac环境下配置JAVA_HOME

    Mac环境下配置JAVA HOME 1 下载JDK版本 JDK官方下载地址 Java下载地址 下载旧版本需要注册oracle用户 下载jdk 12 0 2 osx x64 bin dmg并点击安装 嫌浏览器下载慢的可以把下载地址粘贴到迅雷中
  • Tomcat配置HTTPS访问

    在tomcat中存在两种证书验证情况 1 单向验证 2 双向验证 1 tomcat单向认证 服务器端会提供一个公开的公钥 每一个访问此服务器的客户端都可以获得这个公钥 此公钥被加密后 服务器端可以进行解密处理 之后验证是否配对 配置 在此次
  • postgresql使用UUID函数gen_random_uuid()

    PostgreSQL 13版本前不提供生成UUID数据的内置函数 如果需要使用UUID数据 可通过创建外部扩展 uuid ossp或 pgcrypto生成 UUID数据 PostgreSQL 13 新增gen random uuid 内置函
  • 下载JDK并配置JDK环境变量

    1 下载JDK8或者JDK11 1 点击链接进入官网下载页面 https www oracle com java technologies downloads java8 下拉页面一直到下载的地方 在这里可以选择是下载JDK8还是JDK11
  • 判断某个数组是否包含在另一个数组中

    判断b数组是否包含在a数组中 function isContained a b if a instanceof Array b instanceof Array return false if a length lt b length re
  • 打开cmd闪退

    我们在使用电脑过程中一般会很少用到cmd命令 CMD命令窗口在一些特殊情况时我们会用到 如PING下看网络通不通 在CMD窗口里运行命令如磁盘格式转换 但是有些朋友遇到了这样的问题 在开始运行输入CMD回车后 CMD命令黑框框出来闪一下就消
  • 使用“VMware ThinApp”绿化软件

    当我看到 WPS Office 在我的电脑中写入了上万条注册表项时 我几乎要崩溃了 这个 有点太多了吧 软件绿化工具 环境 Workstation 15 5 Player for Windows 绿化软件 VMware ThinApp 软件
  • 纹波电压

    什么是纹波电压 狭义上的纹波电压 是指输出直流电压中含有的工频交流成分 直流电压本来应该是一个固定的值 但是很多时候它是通过交流电压整流 滤波后得来的 由于滤波不彻底 就会有剩余的交流成分 下图为1 8V的纹波电压 纹波电压是如何产生的 首
  • 2022年Python笔试选择题及答案(秋招)

    2022年Python笔试选择题及答案 秋招 单选题 1 以下关于 Python 的描述错误的是 A Python 的语法类似 PHP B Python 可用于 Web 开发 C Python 是跨平台的 D Python 可用于数据抓取
  • 网络编程day7作业

    将词典导入数据库 include
  • Unity 空格会触发Button的问题

    问题 做了一个界面 空格可以召唤或者关闭一个面板 上面有Button可以控制人物数量信息 当点击过Button修改数量 再按下空格隐藏面板后 最后点击的Button就会被空格键触发一次 如下图 解决 这是由于Button中Navigatio
  • PAT乙级题解—— 1071 小赌怡情 (15分)

    常言道 小赌怡情 这是一个很简单的小游戏 首先由计算机给出第一个整数 然后玩家下注赌第二个整数将会比第一个数大还是小 玩家下注 t 个筹码后 计算机给出第二个数 若玩家猜对了 则系统奖励玩家 t 个筹码 否则扣除玩家 t 个筹码 注意 玩家
  • vue 组件生命周期钩子详解

    Vue是一个自带组件系统的前端框架 Vue的每一个实例其实就是一个组件 我们在组织我们的页面结构的时候其实就是在定一个一个组件 然后拼装在一起 完成一个复杂的页面逻辑 组件主要包含 数据 模版 以及链接数据和模版的状态响应系统 除了这些 我
  • Spark内存管理-UnifiedMemoryManager和StaticMemoryManager

    在Spark 1 6 0中 引入了一个新的参数spark memory userLegacyMode 默认值为false 表示不使用Spark 1 6 0之前的内存管理机制 而是使用1 6 0中引入的动态内存分配这一概念 从SparkEnv
  • 解决Git上传代码error: failed to push some refs to ‘xxx‘hint:(e.g., ‘git pull ...‘) before pushing again错误

    在使用git提交代码时会出现error failed to push some refs to xxxx的错误 如下图 hint Updates were rejected because the remote contains work
  • 使用Adivisor配置增强处理,来实现数据库读写分离

    一 先写一个demo来概述Adivisor的简单使用步骤 实现步骤 1 通过MethodBeforeAdivice接口实现前置增强处理 1 public class ServiceBeforeAdvisor implements Metho
  • 基础算法:前缀和

    前缀和 定义 s i 表示原数组前i个数的和 作用 求任意区间 l r 的和的时间复杂度从循环加的O n 到 s r s l 1 的时间复杂度O 1 eg s 3 a1 a2 a3 s 5 a1 a2 a3 a4 a5 s 4 5 s 5