COGS 36. 求和问题
2024-09-25 10:46:20
时间限制:1.2 s 内存限制:128 MB
【问题描述】
在一个长度为n的整数数列中取出连续的若干个数,并求它们的和。
【输入格式】
输入由若干行组成,第一行有一个整数n
第二行有n个整数
第三行有一个整数m
下面m行,每行两个整数i与j(i<=j),表示求和的起始和终止位置。
第二行有n个整数
第三行有一个整数m
下面m行,每行两个整数i与j(i<=j),表示求和的起始和终止位置。
【输出格式】
输出有m行, 每行一个整数,表示这个数段数列的和。
【输入样例】
输入文件
8
2 3 4 7 8 9 10 234
5
2 3
4 7
1 3
7 7
7 8
2 3 4 7 8 9 10 234
5
2 3
4 7
1 3
7 7
7 8
输出文件
7
34
9
10
244
34
9
10
244
【数据规模】
对于40%的数据,n<=1000,m<=1000,数列中的数不超过32767,数列的和不超过10^9
对于70%的数据,n<=10000,m<=2*10^5,数列中的数不超过32767
对于100%的数据,n<=10000,m<=2*10^5,数列中的数不超过10^9
对于70%的数据,n<=10000,m<=2*10^5,数列中的数不超过32767
对于100%的数据,n<=10000,m<=2*10^5,数列中的数不超过10^9
线段树区间求和
#include <cstdio> using namespace std; typedef long long LL;
struct node
{
LL l,r,dis;
}tree[];
LL ans,u,v,m,n,i,j;
void up(LL now)
{
tree[now].dis=tree[now*].dis+tree[now*+].dis;
}
void read(LL &x)
{
x=;LL f=;
char ch=getchar();
while(ch>''||ch<''){if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+(LL)ch-;ch=getchar();}
x=x*f;
}
void build(LL l,LL r,LL now)
{
tree[now].l=l;tree[now].r=r;
if(tree[now].l==tree[now].r)
{
read(tree[now].dis);
return;
}
LL mid=(l+r)>>;
build(l,mid,now*);
build(mid+,r,now*+);
up(now);
}
void query(LL now)
{
if(tree[now].l>=u&&tree[now].r<=v)
{
ans+=tree[now].dis;
return;
}
LL m=(tree[now].l+tree[now].r)>>;
if(u<=m) query(now<<);
if(v>m) query(now<<|);
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
read(n);
build(,n,);
read(m);
while(m--)
{
read(u);read(v);
ans=;query();
printf("%lld\n",ans);
}
fclose(stdin);
fclose(stdout);
return ;
}
最新文章
- 使用plsql创建表空间和用户
- (转)高性能网站架构之缓存篇—Redis集群搭建
- Most middleware (like favicon) is no longer bundled with Express
- ACM题目————zoj问题
- 《OD大数据实战》Hue环境搭建
- Servlet课程0424(三) 通过继承HttpServlet来开发Servlet
- 字符编码:ANSI,ASCII,GB2312,GBK,Big5,Unicode和UTF-8
- 1)phpmyadmin导入数据库大小限制修改
- [LeetCode]题解(python):143-Reorder List
- Android WebView中显示一张或多张图片
- python中namedtuple介绍
- 【转】IGS相关
- 新的一年新的变化!IT的大变天
- CODEFORCES 25E Test
- MyBatis新手教程(一)
- np.random.shuffle(x)的用法
- 乘积型Sobolev不等式
- python 打开文件基础 (笔记)
- 启动Tomcat的时候8080被占用
- markdown语法测试集合