博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Greg and Array
阅读量:5213 次
发布时间:2019-06-14

本文共 1529 字,大约阅读时间需要 5 分钟。

 C:

题意:给你一个序列,然后有两种操作,第一种操作是区间加上一个数,第二种操作也是区间操作 1 3 但是这里的区间不是对原序列,而是指第一种操作,1 3,表示把1,2,3三种操作都执行一遍。求所有的操作结束之后原来数组的数。

题解:先考虑一个简单的问题,就是只有第一种操作,就是区间加上一个数。这里没有查询,所以,先加和后加没有区别。所以或一个图就可以知道。我们可以这么搞,用一个vector<int>ll[n],rr[N],ll[i]记录以i为左端更新的那种操作,rr[i]表示以i为右端点的那些更新,as 表示当前数最终应该加的值,当遇到以i开始的时候,as+=这个更新的值,遇到i结尾的时候,as-=这个更新值,这样就可以for一遍就可以了。这样就解决的这个简单的问题,现在来考虑这个题目,也就是二级操作,同理,二级操作也可以了采用这种方式,来统计数操作执行的次数,然后就转化成一级问题,不过此时一级操作的更新值变为原来的值*执行的次数。

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int N=1e5+100; 8 long long a[N],b[N],c[N]; 9 int n,m,k;10 vector
ll[N],rr[N],l[N],r[N];11 struct Node{12 int l,r;13 long long val;14 }num[N],temp[N];15 int t1,t2;16 int main(){17 while(~scanf("%d%d%d",&n,&m,&k)){18 memset(a,0,sizeof(a));19 for(int i=1;i<=n;i++){20 scanf("%I64d",&a[i]);21 }22 for(int i=1;i<=m;i++){23 scanf("%d%d%I64d",&num[i].l,&num[i].r,&b[i]);24 ll[num[i].l].push_back(i);25 rr[num[i].r].push_back(i);26 num[i].val=0;27 }28 for(int i=1;i<=k;i++){29 scanf("%d%d",&temp[i].l,&temp[i].r);30 l[temp[i].l].push_back(i);31 r[temp[i].r].push_back(i);32 }33 long long as=0;34 memset(c,0,sizeof(c));35 for(int i=1;i<=m;i++){36 as+=l[i].size();37 c[i]+=as;38 as-=r[i].size();39 }40 for(int i=1;i<=m;i++){41 num[i].val=c[i]*b[i];42 }43 as=0;44 for(int i=1;i<=n;i++){45 for(int j=0;j
View Code

 

转载于:https://www.cnblogs.com/chujian123/p/3901539.html

你可能感兴趣的文章
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
递归-下楼梯
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
Azure Iaas基础之---创建虚拟机
查看>>
不错的MVC文章
查看>>
网络管理相关函数
查看>>
IOS Google语音识别更新啦!!!
查看>>
20190422 T-SQL 触发器
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
poj1422_有向图最小路径覆盖数
查看>>
BootScrap
查看>>
[大牛翻译系列]Hadoop(16)MapReduce 性能调优:优化数据序列化
查看>>
WEB_点击一百万次
查看>>
CodeForces - 878A Short Program(位运算)
查看>>
路冉的JavaScript学习笔记-2015年1月23日
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
CoreData 从入门到精通(四)并发操作
查看>>