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

风景区网站建设项目建设可行性wordpress php推送

风景区网站建设项目建设可行性,wordpress php推送,google免费vps,wordpress标签链接地址题目描述 给出一个长为 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/805559.html

相关文章:

  • 住房和城市建设部网站做网站视频背景
  • 移动端网站和app开发凤冈建设局网站
  • c 做网站房产信息网的官网链接
  • 淮安做网站就找卓越凯欣建筑工程有限责任公司
  • 南京关键词网站排名对百度竞价排名的看法
  • 网站建设推广选哪家新手网站建设教程
  • 网站推广的常用方法有哪些?莱芜摩托车网站
  • 怎么做网站滑动图片部分h5大人室内设计网
  • 城阳网站制作微小店网站建设官网
  • 郑州 (网站建设网站开发工程师发展趋势
  • 网站负责人备案采集照小型网上商城系统
  • 做彩票网站是违法吗如何建网站做传奇网友
  • 建设网站要什么电脑做珠宝网站公司
  • 邯郸单位网站建设网站多少图片怎么做超链接
  • 专门做婚姻法的网站四川建设人才网官网
  • 有源码怎么在本地网站搭建无锡做食品网站的公司哪家好
  • ps兼职做网站微信小程序源码网站
  • 公众号视频网站怎么做有没有什么东西可以做网站
  • 佛山市品牌网站建设价格泰安东平房产信息网
  • 风险网站怎么解决方案合肥官网建设公司哪家好
  • 南宁百度网站推广ueeshop外贸建站公司
  • iis做网站视毕节建设公司网站
  • 地方网站如何做北京做网站的好公司
  • 个人网站模板制作运城做网站
  • 简约式网站做个网站大概多少钱
  • 自己做网站怎么租服务器2021企业公司大黄页
  • 做美团网站需要多少钱唐山企业网站模板建站
  • 苏州网站推广优化如何做自己的简历网站
  • 加拿大购物网站排名网站推广seo代理
  • 如何优化网站tkd如何做基金公司网站