当前位置: 首页 > wzjs >正文

怎么免费建自己的网站搜索优化的培训免费咨询

怎么免费建自己的网站,搜索优化的培训免费咨询,ps怎么做网站页面,企业管理培训课程图片题目描述 给出一个长为 n n n 的数列,以及 n n n 个操作,操作涉及区间加法,区间求和。 输入格式 第一行输入一个数字 n n n。 第二行输入 n n n 个数字,第 i 个数字为 a i a_i ai​,以空格隔开。 接下来输入…

题目描述

给出一个长为 n n n 的数列,以及 n n n 个操作,操作涉及区间加法,区间求和。

输入格式

第一行输入一个数字 n n n

第二行输入 n n n 个数字,第 i 个数字为 a i a_i ai,以空格隔开。

接下来输入 n n n 行询问,每行输入四个数字 o p t , l , r , c opt,l,r,c opt,l,r,c,以空格隔开。

opt = 0,表示将位于 [ l , r ] [l, r] [l,r] 的之间的数字都加 c c c

opt = 1,表示询问位于 [ l , r ] [l, r] [l,r] 的所有数字的和 m o d ( c + 1 ) \bmod (c+1) mod(c+1)

输出格式

对于每次询问,输出一行一个数字表示答案。

样例

样例输入1:

4
1 2 2 3
0 1 3 1
1 1 4 4
0 1 2 2
1 1 2 4

样例输出1:

1
4

数据范围

对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 50000 1 \le n \le 50000 1n50000 − 2 31 ≤ o t h e r s , a n s ≤ 2 31 − 1 -2^{31} \le others,ans \le 2^{31} - 1 231others,ans2311

题解

与数列分块1类似,区间加法如果是散块就直接加,整块就在整块上打标记。询问时散块直接枚举,整块将预处理的整块的和加上。

块长建议开 n 0.66 n^{0.66} n0.66,这样会更快。

#include<bits/stdc++.h>
using namespace std;
int n;
long long a[51010];
struct kuai{long long kuai_cnt, kuai_len, belong[51010], add[310], b[51010];long long kuai[310];void init(){kuai_len = sqrt(n);kuai_cnt = (n + kuai_len - 1) / kuai_len;for(int i = 1; i <= kuai_cnt; ++ i){for(int j = (i - 1) * kuai_len + 1; j <= i * kuai_len; ++ j){kuai[i] += a[j];belong[j] = i;b[j] = a[j];}}}void change(int l, int r, int d){if(belong[l] == belong[r]){for(int i = l; i <= r; ++ i){b[i] += d;}kuai[belong[l]] += (r - l + 1) * d;}else{for(int i = l; i <= belong[l] * kuai_len; ++ i){b[i] += d;kuai[belong[l]] += d;}for(int i = belong[l] + 1; i <= belong[r] - 1; ++ i){add[i] += d;kuai[i] += d * (min((long long)n, i * kuai_len) - (i - 1) * kuai_len );}for(int i = (belong[r] - 1) * kuai_len + 1; i <= r; ++ i){b[i] += d;kuai[belong[r]] += d;}}}long long query(int l, int r){if(belong[l] == belong[r]){long long ans = 0;for(int i = l; i <= r; ++ i){ans += b[i] + add[belong[l]];}return ans;}else{long long ans = 0;for(int i = l; i <= belong[l] * kuai_len; ++ i){ans += b[i] + add[belong[l]];}for(int i = belong[l] + 1; i <= belong[r] - 1; ++ i){ans += kuai[i];}for(int i = (belong[r] - 1) * kuai_len + 1; i <= r; ++ i){ans += b[i] + add[belong[r]];}return ans;}}
}k;
int main(){scanf("%d", &n);for(int i = 1; i <= n; ++ i){scanf("%d", &a[i]);}k.init();for(int i = 1; i <= n; ++ i){int op, l, r, d;scanf("%d %d %d %d", &op, &l, &r, &d);if(op == 0){k.change(l, r, d);}else{printf("%lld\n", k.query(l, r) % (d + 1));}}return 0;
}
http://www.dtcms.com/wzjs/265603.html

相关文章:

  • 做漫画视频在线观看网站软文营销文章500字
  • WordPress订单功能开发seo求职信息
  • 珠海网络公司网站建设抖音seo系统
  • 南宁有本地租房做网站吗网推拉新app推广平台
  • 自己做副业可以抢哪个网站百度客服怎么转人工电话
  • seo综合查询怎么关闭株洲专业seo优化
  • 青岛哪个网站建设公司价格低还能好一些微营销推广平台有哪些
  • 公司做网站比较好的平台seo网络运营
  • 安全的网站建设杭州推广系统
  • 小说网站建设费用seo关键词优化软件
  • 使用vs2015做网站教程长春关键词搜索排名
  • 建设信用卡网站是什么百度关键词排名软件
  • app产品网站建设全网营销推广
  • 动态网站开发实例教程代码荆州seo推广
  • 电子商务书城网站建设方案百度点击器下载
  • 上海门户网站论坛怎么推广
  • 查企业信息的app长沙企业关键词优化哪家好
  • 哈尔滨 做网站公司哪家好官网建设
  • 没有相应营业执照怎么做网站十八大禁用黄app入口
  • 做网站需要会编程吗关键词搜索爱站
  • 建网站需要哪些文件夹淘宝推广
  • 织梦做淘宝客网站视频教程宁波seo关键词优化制作
  • 北京免费网站建设模板适合网络营销的产品
  • wordpress评论后不显示网站seo分析工具
  • 经纪人做网站技巧企业管理培训课程网课
  • 郑州门户网站建设seo标题生成器
  • 网站建设产品图合肥全网推广
  • 怎么做自己网站的API教你如何建立网站
  • 买衣服网站排名网站首页布局设计模板
  • 中国建设银行网站个人客户官网人民网 疫情