[CF 295A]Grag and Array[差分数列]
题意:
有数列a[ ]; 操作op[ ] = { l, r, d }; 询问q[ ] = { x, y };
操作表示对a的[ l, r ] 区间上每个数增加d; 询问表示执行[ x, y ]之间的op.
打印最终数列.
思路:
用两次差分数列, 先处理出对于每个op调用了几次, 再对数列执行操作.
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 1e5+5;
typedef long long ll;
ll a[MAXN],sum[MAXN];
ll d[MAXN],delta[MAXN];
int l[MAXN],r[MAXN]; int main()
{
int n,m,k;
scanf("%d %d %d",&n,&m,&k);
for(int i=1;i<=n;i++)
scanf("%I64d",a+i);
for(int i=1;i<=m;i++)
scanf("%d %d %I64d",l+i,r+i,delta+i);
int x,y;
while(k--)
{
scanf("%d %d",&x,&y);
d[x]++;d[y+1]--;
}
for(int i=1;i<=m;i++)
{
sum[i] = sum[i-1] + d[i];
delta[i] *= sum[i];
}
memset(d,0,sizeof(d));
memset(sum,0,sizeof(sum));
for(int i=1;i<=m;i++)
{
if(!delta[i]) continue;
d[l[i]] += delta[i];
d[r[i]+1] -= delta[i];
}
for(int i=1;i<=n;i++)
{
sum[i] = sum[i-1] + d[i];
a[i] += sum[i];
printf("%I64d%c",a[i],i==n?'\n':' ');
}
}
[CF 295A]Grag and Array[差分数列]的更多相关文章
- CF 295A Greg and Array (两次建树,区间更新,单点查询)
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm& ...
- [CF 276C]Little Girl and Maximum Sum[差分数列]
题意: 给出n项的数列A[ ], q个询问, 询问 [ l, r ] 之间项的和. 求A的全排列中该和的最大值. 思路: 记录所有询问, 利用差分数列qd[ ], 标记第 i 项被询问的次数( 每次区 ...
- CF460C Present (二分 + 差分数列)
Codeforces Round #262 (Div. 2) C C - Present C. Present time limit per test 2 seconds memory limit p ...
- hdu4970 Killing Monsters (差分数列)
2014多校9 1011 http://acm.hdu.edu.cn/showproblem.php?pid=4970 Killing Monsters Time Limit: 2000/1000 M ...
- UVALive 4119 Always an integer (差分数列,模拟)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Always an integer Time Limit:3000MS M ...
- Codeforces 295A Greg and Array
传送门 A. Greg and Array time limit per test 1.5 seconds memory limit per test 256 megabytes input stan ...
- CF 1008C Reorder the Array
You are given an array of integers. Vasya can permute (change order) its integers. He wants to do it ...
- LA 4119 (差分数列 多项式) Always an integer
题意: 给出一个形如(P)/D的多项式,其中P是n的整系数多项式,D为整数. 问是否对于所有的正整数n,该多项式的值都是整数. 分析: 可以用数学归纳法证明,若P(n)是k次多项式,则P(n+1) - ...
- CodeForces Round #179 (295A) - Greg and Array
题目链接:http://codeforces.com/problemset/problem/295/A 我的做法,两次线段树 #include <cstdio> #include < ...
随机推荐
- SSH整合最简单的一个例子
1.新建mysql数据库 create database spring; 切换数据库 use spring; 新建表 create table user (id int(3) auto_incre ...
- (17) go 协程管道
一.协程 二.管道
- Python网络模块Paramiko基本使用
一.Paramiko简介 首先来看谁创造了paramiko,是一个名叫Jeff Forcier创建了paramiko项目.项目主页:http://www.paramiko.org,可以去看上面有很多相 ...
- SpringBoot学习(二)
MyBatis是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.spring Boot 是能支持快速创建 Spring 应用的 ...
- Python实现简单的API接口
get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_ ...
- jquery.rotate.js实现旋转动画
1.页面引入jquery.rotate.js文件, 下载地址:https://files.cnblogs.com/files/zhoujl-5071/jquery.rotate.js(打开这个网址,c ...
- CentOS 6.9设置阿里云源/163源
阿里云: 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS ...
- wpf简单的绘图板
xaml: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft ...
- SpringMvc(1) --Eclipse搭建web项目
http://blog.csdn.net/uucai http://blog.csdn.net/uucai/article/details/21258575
- oracle维护服务 oracle解决方案 oracle售后服务
为客户提供的oracle 金牌技术服务内容为: 1.电话服务 (7*24) 热线支持电话800-810-0081 每周7天,每天24小时北京技术支持中心每天都有专人值守.以保证及时与客 ...