题目

. 二哥的求和
时间限制 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 二哥求和(前缀和)的更多相关文章

  1. GXU - 7D - 区间求和 - 前缀和

    https://oj.gxu.edu.cn/contest/7/problem/D 描述 有一个所有元素皆为0的数组A,有两种操作: 1 l r x表示将A区间[l,r]内所有数加上x: 2 l r表 ...

  2. 【bzoj2901】矩阵求和 前缀和

    题目描述 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. 输入 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一个矩阵. 接下来n行,每行n个非负整数,表示第二个矩阵. ...

  3. Codeforces Round #553 (Div. 2) C 等差数列求和 + 前缀和

    https://codeforces.com/contest/1151/problem/C 题意 有两个等差数列(1,3,5,..),(2,4,6,...),两个数列轮流取1,2,4,...,\(2^ ...

  4. [洛谷2671]求和<前缀和&模拟>

    题目链接:https://www.luogu.org/problemnew/show/P2671 这是noip2015普及组的第三题,谁说的普及组的题就一定水的不行,这道题就比较有意思的 这道题的暴力 ...

  5. 2018天梯赛第一次训练题解和ac代码

    随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS     Memory Limit: ...

  6. 数论2&莫&杜

    积性函数: 积性函数定义ok 积性函数指对于所有互质的整数\(a\)和\(b\)有性质\(f(ab)=f(a)f(b)\)的数论函数 除数函数? 莫比乌斯函数\(\mu\)ok \[ \phi(i) ...

  7. 【BZOJ5293】[BJOI2018]求和(前缀和,LCA)

    [BZOJ5293][BJOI2018]求和(前缀和,LCA) 题面 BZOJ 洛谷 题解 送分题??? 预处理一下\(k\)次方的前缀和. 然后求个\(LCA\)就做完了?... #include& ...

  8. 51nod 1081 子段求和(线段树 | 树状数组 | 前缀和)

    题目链接:子段求和 题意:n个数字序列,m次询问,每次询问从第p个开始L长度序列的子段和为多少. 题解:线段树区间求和 | 树状数组区间求和 线段树: #include <cstdio> ...

  9. HDU 6336.Problem E. Matrix from Arrays-子矩阵求和+规律+二维前缀和 (2018 Multi-University Training Contest 4 1005)

    6336.Problem E. Matrix from Arrays 不想解释了,直接官方题解: 队友写了博客,我是水的他的代码 ------>HDU 6336 子矩阵求和 至于为什么是4倍的, ...

随机推荐

  1. WebService之CXF注解之五(配置文件)

    1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  2. AM335x(TQ335x)学习笔记——USB驱动移植

    对于AM335x来讲,TI维护的USB驱动已经非常完善了,本文称之为移植,实际上仅仅是配置内核选项使能USB HOST/OTG功能.废话少说,直接动手开启AM335x的USB驱动配置项. Step1. ...

  3. Docker 小记 — MySQL 与 Redis 配置

    前言 本篇随笔是继 "Docker Engine" 与 "Compose & Swarm" 之后的一个实例补充,初衷是记录测试环境中的一次 MySQL ...

  4. swing 之简单登录窗体实现

    swing之简单登陆窗体的实现 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionLi ...

  5. PyTorch官方中文文档:torch.Tensor

    torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...

  6. 二、CSS

    css基本语法及页面引用 css基本语法 css的定义方法是: 选择器 { 属性:值; 属性:值; 属性:值;} 选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性每个属性有一个或多个值 ...

  7. 【Luogu3121】审查(AC自动机)

    题面 Description 农夫约翰为他的奶牛们购买了一份名字叫Good Hooveskeeping的定期杂志,因此奶牛们在挤奶期间就有了大量的阅读素材.遗憾的是在最新的一期上,有一篇有点儿不适当的 ...

  8. Spring Boot Security 基于角色的访问控制

    @Override protected void configure(HttpSecurity http) throws Exception { //如果配置为需要登录 if (needLogin) ...

  9. 微信退款 - tp5

    原文:http://www.upwqy.com/details/19.html 1 微信退款官方文档  https://pay.weixin.qq.com/wiki/doc/api/app/app.p ...

  10. PHP 获取访问来源

    原文:http://www.upwqy.com/details/16.html $_SERVER['HTTP_REFERER'] 通过这个全局变量可以获取访问的链接是来源于哪里 比如说从博客园 htt ...