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

网站优化推广seowordpress建立网站

网站优化推广seo,wordpress建立网站,网站建设以及seo,宁波建站推广技术公司题目描述 给出一个长为 n n n 的数列,以及 n n n 个操作,操作涉及区间加法,询问区间内小于某个值 x x x 的元素个数。 输入格式 第一行输入一个数字 n n n。 第二行输入 n n n 个数字,第 i i i 个数字为 a i a_i ai​&a…

题目描述

给出一个长为 n n n 的数列,以及 n n n 个操作,操作涉及区间加法,询问区间内小于某个值 x x x 的元素个数。

输入格式

第一行输入一个数字 n n n
第二行输入 n n n 个数字,第 i i i 个数字为 a i a_i ai,以空格隔开。
接下来输入 n n n 行询问,每行输入四个数字 o p t , l , r , c opt,l,r,c opt,l,r,c,以空格隔开。
o p t = 0 opt = 0 opt=0,表示将位于 [ l , r ] [l, r] [l,r] 的之间的数字都加 c c c
o p t = 1 opt = 1 opt=1,表示询问 [ l , r ] [l, r] [l,r] 中,小于 c 2 c^2 c2 的数字的个数。

输出格式

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

样例

样例输入1:

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

样例输出1:

3
0
2

数据范围

对于 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

题解

修改:散块修改时,有可能会打乱排序的顺序。因此需要修改后重新排序。整块还是用一个标记存区间加 a d d add add 的值。

查询:散块直接暴力判断。整块对块内元素进行排序,再用二分求出小于 c 2 − a d d c^2 - add c2add 的数的个数。

#include<bits/stdc++.h>
using namespace std;
long long n, kuai_cnt, kuai_len;
long long a[50010], add[310], belong[50010];
vector<long long> v[310];
void reset(long long x){//重新排序v[x].clear();for(long long i = (x - 1) * kuai_len + 1; i <= min(x * kuai_len, n); ++ i){v[x].push_back(a[i]);}sort(v[x].begin(), v[x].end());
}
void change(long long l, long long r, long long x){for(long long i = l; i <= min(belong[l] * kuai_len, r); ++ i){a[i] += x;}reset(belong[l]);if(belong[l] != belong[r]){for(long long i = (belong[r] - 1) * kuai_len + 1; i <= r; ++ i){a[i] += x;}reset(belong[r]);}for(long long i = belong[l] + 1; i <= belong[r] - 1; ++ i){add[i] += x;}
}
long long query(long long l, long long r, long long x){long long sum = 0;for(long long i = l; i <= min(r, belong[l] * kuai_len); ++ i){if(a[i] + add[belong[l]] < x){++ sum;}}if(belong[l] != belong[r]){for(long long i = (belong[r] - 1) * kuai_len + 1; i <= r; ++ i){if(a[i] + add[belong[r]] < x){++ sum;}}}for(long long i = belong[l] + 1; i <= belong[r] - 1; ++ i){long long t = x - add[i];sum += lower_bound(v[i].begin(), v[i].end(), t) - v[i].begin();}return sum;
}
int main(){scanf("%lld", &n);for(long long i = 1; i <= n; ++ i){scanf("%lld", &a[i]);}kuai_len = sqrt(n);kuai_cnt = (n + kuai_len - 1) / kuai_len;for(long long i = 1; i <= n; ++ i){belong[i] = (i - 1) / kuai_len + 1;v[belong[i]].push_back(a[i]);}for(long long i = 1; i <= kuai_cnt; ++ i){sort(v[i].begin(), v[i].end());}for(long long i = 1; i <= n; ++ i){long long op, l, r, d;scanf("%lld %lld %lld %lld", &op, &l, &r, &d);if(op == 0){change(l, r, d);}else{printf("%lld\n", query(l, r, d * d));}}return 0;
}
http://www.dtcms.com/wzjs/565807.html

相关文章:

  • 做外贸的怎么建立自己的网站深圳 福田网站建设
  • 定制型网站 成功案例建设网站各方面费用预算
  • 外省公司做网站备案建设彩票网站多少钱
  • 珠海高端网站制作公司百度首页网站的设计
  • pc网站优化排名做网站还要写文章吗
  • 做网站和网站页面设计东莞如何制作自己的网站
  • 宠物网站建设总结用网站模板 侵权 做了修改
  • 工厂 电商网站建设重庆环保公司网站建设
  • 网站备案人授权书游学做的好的网站
  • 泰州做网站多少钱做招聘网站的要求
  • 网站生成软件app制作网页代码制作基础教程
  • 申请免费的网站石家庄城乡建设部网站首页
  • 网站架构设计师原网站开发新功能
  • 网站服务器怎么迁移外贸怎么做公司网站
  • 中山建设网站公司中国建设银行复核网站
  • 网站的简介怎么在后台炒做优创智汇高端网站建设电话怎么样
  • 免费做微网站wordpress 数据库函数大全
  • 清华紫光做网站济南物流公司网站建设
  • php个人网站模板定制软件开发公司
  • 人工智能自动做网站兰州网站建设招聘信息
  • 小说类网站怎么做设计网页的快捷网站
  • 湖北建站郑州做网站推
  • 生成logo的网站企业作风建设实施方案
  • dw软件下载官方网站漳州手机网站建设公司哪家好
  • 网站建设技能描述龙岗网站建设网站排名优化
  • 永康网站建设的公司网店怎么开
  • 移动端网站怎么做外链wordpress评论加强
  • 泉州市建设工程质量监督站网站大连市城乡建设档案馆网站
  • 河南中国建设厅官方网站写一个网站需要什么技术
  • 如何在社交网站上做视频推广方案wordpress站外连接