bjtu 1819 二哥求和(前缀和)
题目
. 二哥的求和
时间限制 ms
内存限制 MB
题目描述 某一天,calfcamel问二哥,有道数学题怎么做呀?二哥看了一下说我不会呀,于是二哥找到了你,请你帮他解决这个问题,这样二哥就可以鄙视calfcamel数学菜了。 给你一个长度为n的数组a[i],有q个询问,对于每次询问[l,r],输出 ∑ i=l r a i (i−l+)
∑i=lrai(i−l+)
也就是输出[l,r]这段区间上,第一个数乘以一,第二个数乘以2,第三个数乘以3,……的和。
输入数据 第一行为一个T,表示有T(T<= )组数据 对于每组数据: 第一行是一个n(n <= ) 第二行有n个数a[i] (<=a[i] <=),下标从1开始,即a[] – a[n] 第三行有一个q(q <=),表示询问的数目 接下来q行,每行有两个整数l,r 输出数据 对于每一组数据,第一行输出”Case x: ” (冒号后有一空格) 接下来q行,每行输出询问的答案 文件最后使用换行符结束文件 样例输入  复制 样例输出  复制 Case : Case : 样例说明 数据比较大,C/C++请使用scanf读入 ,使用cin可能会超时。 本题目最后答案超出int,C/C++请使用long long防止溢出
题目
分析:先用一个sum[i]维护一个前i的和,再用一个ai[i]来维护a[i]*i的和,这样就可以快速求出l,r区间的和了(公式:ans=ai[r]-ai[l-1]-(sum[r]-sum[l-1])*(l-1))
#define debug
#include<stdio.h>
#include<math.h>
#include<cmath>
#include<queue>
#include<stack>
#include<string>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<functional>
#include<iomanip>
#include<map>
#include<set>
#define f first
#define s second
#define pb push_back
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll>PLL;
typedef pair<int,ll>Pil;
const ll INF = 0x3f3f3f3f;
const double inf=1e8+100;
const double eps=1e-8;
const ll maxn =1e6+300;
const int N = 1e4+10;
const ll mod=1e9+7;
//define
ll a[maxn];
ll ai[maxn];
ll sum[maxn];
//前缀和 a[i],a[i]*i
void sum_add() {
int t,i;
// cin>>t;
scanf("%d",&t);
for(i=1; i<=t; i++) {
ll n;
scanf("%lld",&n);
//cout case
printf("Case %d: \n",i);
for(ll j=1; j<=n; j++) {
cin>>a[j];
sum[j]=sum[j-1]+a[j];
ai[j]=ai[j-1]+a[j]*j;
// cout<<a[j]<<" "<<ai[j]<<endl;
}
//
ll q;
scanf("%lld",&q);
while(q--) {
ll l,r;
scanf("%lld %lld",&l,&r);
ll ans=ai[r]-ai[l-1]-(sum[r]-sum[l-1])*(l-1);
printf("%lld\n",ans);
}
}
}
//--solve
void solve() {
int i,j,tt=1;
sum_add();
} int main() {
// ios_base::sync_with_stdio(false);
#ifdef debug
freopen("in.txt", "r", stdin);
// freopen("out.txt","w",stdout);
#endif
// cin.tie(0);
// cout.tie(0);
solve();
/*
#ifdef debug
fclose(stdin);
fclose(stdout);
system("out.txt");
#endif
*/
return 0;
}
bjtu 1819 二哥求和(前缀和)的更多相关文章
- GXU - 7D - 区间求和 - 前缀和
		https://oj.gxu.edu.cn/contest/7/problem/D 描述 有一个所有元素皆为0的数组A,有两种操作: 1 l r x表示将A区间[l,r]内所有数加上x: 2 l r表 ... 
- 【bzoj2901】矩阵求和  前缀和
		题目描述 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. 输入 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一个矩阵. 接下来n行,每行n个非负整数,表示第二个矩阵. ... 
- Codeforces Round #553 (Div. 2) C 等差数列求和 + 前缀和
		https://codeforces.com/contest/1151/problem/C 题意 有两个等差数列(1,3,5,..),(2,4,6,...),两个数列轮流取1,2,4,...,\(2^ ... 
- [洛谷2671]求和<前缀和&模拟>
		题目链接:https://www.luogu.org/problemnew/show/P2671 这是noip2015普及组的第三题,谁说的普及组的题就一定水的不行,这道题就比较有意思的 这道题的暴力 ... 
- 2018天梯赛第一次训练题解和ac代码
		随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS Memory Limit: ... 
- 数论2&莫&杜
		积性函数: 积性函数定义ok 积性函数指对于所有互质的整数\(a\)和\(b\)有性质\(f(ab)=f(a)f(b)\)的数论函数 除数函数? 莫比乌斯函数\(\mu\)ok \[ \phi(i) ... 
- 【BZOJ5293】[BJOI2018]求和(前缀和,LCA)
		[BZOJ5293][BJOI2018]求和(前缀和,LCA) 题面 BZOJ 洛谷 题解 送分题??? 预处理一下\(k\)次方的前缀和. 然后求个\(LCA\)就做完了?... #include& ... 
- 51nod 1081 子段求和(线段树 | 树状数组 | 前缀和)
		题目链接:子段求和 题意:n个数字序列,m次询问,每次询问从第p个开始L长度序列的子段和为多少. 题解:线段树区间求和 | 树状数组区间求和 线段树: #include <cstdio> ... 
- HDU 6336.Problem E. Matrix from Arrays-子矩阵求和+规律+二维前缀和 (2018 Multi-University Training Contest 4 1005)
		6336.Problem E. Matrix from Arrays 不想解释了,直接官方题解: 队友写了博客,我是水的他的代码 ------>HDU 6336 子矩阵求和 至于为什么是4倍的, ... 
随机推荐
- Deadlock found when trying to get lock; try restarting   transaction
			1.错误描述 [ERROR:]2015-06-09 16:56:19,481 [抄送失败] org.hibernate.exception.LockAcquisitionException: erro ... 
- 利用Eclipse中的Maven构建Web项目报错(一)
			利用Eclipse中的Maven构建Web项目 1.在进行上述操作时,pom.xml一直报错 <project xmlns="http://maven.apache.org/POM/4 ... 
- Invalid property 'url' of bean class [com.mchange.v2.c3p0.ComboPooledDataSource]
			1.错误描述 INFO:2015-05-01 13:13:05[localhost-startStop-1] - Initializing c3p0-0.9.2.1 [built 20-March-2 ... 
- C# Split 根据组合字符进行拆分数组用法
			C# Split 根据组合字符进行拆分数组用法,如下代码: string sql = "aaaaaaaaaa{@}bbbbbbbbbb{@}ccccccc#cccccc"; //1 ... 
- fineuploader使用实例
			1.Fine Uploader特点 Fine Uploader Features: A:支持文件上传进度显示. B:文件拖拽浏览器上传方式 C:Ajax页面无刷新. D:多文件上传. F:跨浏览器. ... 
- iOS - Core Animation 核心动画的使用
			1.简单使用示例 1.1 时钟 QClockView.h @interface QClockView : UIView /// 创建时钟界面 + (instancetype)q_clockViewWi ... 
- 异常-----freemarker.core.ParseException: Token manager error
			一,案例一 1.1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: L ... 
- 常用的freemark语法(三)
			一,符号的意义 1.0,单问号 ?后面要加关键字,例如:<#if object?exists>object对象不为空</#if> <#if str??>${str? ... 
- css设置居中的方案总结
			回想一下,自己平时项目里遇到的比较多的就是css如何让元素居中显示,其实差不多每种情况都遇到过,所采用的方法也都各有利弊,下面对这些方法来做个概括,对其中的坑点,也会一一指出来,希望能给遇到问题的同学 ... 
- VMware下载安装及CentOS7下载安装
			我是在Windows10系统下,下载的VMware Workstation 12 1.下载虚拟机软件 安装包位置(里面有激活码):https://pan.baidu.com/s/1i5hn5lj 2. ... 
