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

邢台手机网站制作/优化加速

邢台手机网站制作,优化加速,免费个人网站源码php,wordpress新浪微博插件2025 - 03 - 09 - 第 72 篇 Author: 郑龙浩 / 仟濹 【前缀和与差分 C/C】 文章目录 洛谷 P8218 求区间和题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 说明/提示思路代码 洛谷 P8218 求区间和 题目描述 给定 n n n 个正整数组成的数列 a 1 , a 2 , ⋯ , a n a_…

2025 - 03 - 09 - 第 72 篇
Author: 郑龙浩 / 仟濹
【前缀和与差分 C/C++】

文章目录

  • 洛谷 P8218 求区间和
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例 #1
      • 输入 #1
      • 输出 #1
    • 说明/提示
    • 思路
    • 代码

洛谷 P8218 求区间和

题目描述

给定 n n n 个正整数组成的数列 a 1 , a 2 , ⋯ , a n a_1, a_2, \cdots, a_n a1,a2,,an m m m 个区间 [ l i , r i ] [l_i,r_i] [li,ri],分别求这 m m m 个区间的区间和。

对于所有测试数据, n , m ≤ 1 0 5 , a i ≤ 1 0 4 n,m\le10^5,a_i\le 10^4 n,m105,ai104

输入格式

第一行,为一个正整数 n n n

第二行,为 n n n 个正整数 a 1 , a 2 , ⋯ , a n a_1,a_2, \cdots ,a_n a1,a2,,an

第三行,为一个正整数 m m m

接下来 m m m 行,每行为两个正整数 l i , r i l_i,r_i li,ri ,满足 1 ≤ l i ≤ r i ≤ n 1\le l_i\le r_i\le n 1lirin

输出格式

m m m 行。

i i i 行为第 i i i 组答案的询问。

输入输出样例 #1

输入 #1

4
4 3 2 1
2
1 4
2 3

输出 #1

10
5

说明/提示

样例解释:第 1 1 1 到第 4 4 4 个数加起来和为 10 10 10。第 2 2 2 个数到第 3 3 3 个数加起来和为 5 5 5

对于 50 % 50 \% 50% 的数据: n , m ≤ 1000 n,m\le 1000 n,m1000

对于 100 % 100 \% 100% 的数据: 1 ≤ n , m ≤ 1 0 5 1 \le n, m\le 10^5 1n,m105 1 ≤ a i ≤ 1 0 4 1 \le a_i\le 10^4 1ai104

思路

典型的的一维前缀和做法,不做具体的描述了。

我已将常规的一维前缀和笔记详细记录,具体内容可见我的博客,如下

一维前缀和算法
https://blog.csdn.net/m0_60605989/article/details/146117026?fromshare=blogdetail&sharetype=blogdetail&sharerId=146117026&sharerefer=PC&sharesource=m0_60605989&sharefrom=from_link

代码

// 洛谷P8218求区间和
// Author: 郑龙浩 / 仟濹
// Time: 2025-03-09
// 这道题是一个明显的一维前缀和
#include <bits/stdc++.h>
using namespace std;
// 列表
vector <int> arr;
// 前缀和数组
vector <int> sum;
int num, m;
// 计算区间和的函数 - 利用前缀和
int get_sum(int left, int right){int ans;// 注意判断,如果left是0,0-1 == -1,没有这个下标,不合法,应该特判if (left == 0)  return sum[right];// 正常套用公式即可ans = sum[right] - sum[left - 1];return ans;
}
int main( void ){cin >> num;arr.resize(num); // 设置 arr 原数列大小sum.resize(num); // 设置 sum 前缀和 大小// 输入数列for (int i = 0; i < num; i ++)cin >> arr[i];cin >> m;// 计算前缀和sum[0] = arr[0];for(int i = 1; i < num; i ++){sum[i] = sum[i - 1] + arr[i];}int left, right;// 输入 m 个区间,边输入边运算for (int i = 0; i < m; i ++){cin >> left >> right; // 输入的是第几个,而不是下标left -= 1; // 变为下标right -= 1; // 变为下标cout << get_sum(left, right) << endl;}return 0;
}
http://www.whsansanxincailiao.cn/news/31985526.html

相关文章:

  • 简单的网站代码/网络舆情应急预案
  • 深圳找个人做网站/seo整站优化吧
  • 系统的网站建设教程/360关键词排名推广
  • 深圳产品型网站建设/销售管理怎么带团队
  • 品牌网站建设意义/潍坊百度快速排名优化
  • 网站制作常见问题 图片版权/朋友圈推广平台
  • 网站设计好做吗/网络促销的方法有哪些
  • 响应式网站开发设计师/深圳华强北新闻最新消息今天
  • 企业网站托管外包平台/市场营销策划包括哪些内容
  • 网站怎么做搜索引擎/如何做网站营销
  • 手机网站设计理念/最常用的几个关键词
  • 网站建设多久/百度关键词搜索工具
  • .net做网站后台/东莞企业网站模板建站
  • 集美培训网站建设/独立站seo优化
  • 北京哪家公司做网站好/禁止搜索引擎收录的方法
  • 西安企业网站建设模板/百度投诉中心电话24个小时
  • 聊城建设路小学网站/优化网站价格
  • 网站建设 成都/产品推广营销方案
  • 怎么将自己做的网站发到网上去/seo技巧是什么意思
  • 怎么自己做网站赚钱/南昌关键词优化软件
  • php网站开发源码/搜索引擎营销的特点是
  • 网站cn域名注册/百度推广运营怎么做
  • 在某网站被骗钱该怎么做/售卖链接
  • 商务网站建设组成包括网站优化/郑州seo排名扣费
  • 网站建设工作领导小组/网页制作免费网站制作
  • 有没有一些有试卷做的网站/jmr119色带
  • 成都网站建设门户/sem培训班
  • 8个实用的wordpress数据库技巧/seo搜索优化推广
  • 济南做网站推广有哪些公司/推广服务商
  • python做的网站有哪些/淄博seo网站推广