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

建设部网站是什么网站品牌推广软文200字

建设部网站是什么网站,品牌推广软文200字,熊撑号怎么做网站推广,护卫神 安装wordpress目录: 单点修改,区间查询: 题目描述: lowbit()运算: 插入、修改单点数据: 计算前缀和: 完整代码: 区间修改,单点查询: 计算差分数组: 计算每个点的…

目录:

单点修改,区间查询:

        题目描述:

        lowbit()运算:

        插入、修改单点数据:

        计算前缀和:

        完整代码:

区间修改,单点查询:

        计算差分数组:

        计算每个点的值:

        完整代码:


单点修改,区间查询:


题目描述:

如题,已知一个数列,你需要进行下面两种操作:

  • 将某一个数加上 x

  • 求出某区间每一个数的和

输入格式

第一行包含两个正整数 n, m,分别表示该数列数字的个数和操作的总个数。

第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。

接下来 m 行每行包含 3 个整数,表示一个操作,具体如下:

  • 1 x k 含义:将第 x 个数加上 k

  • 2 x y 含义:输出区间 [x, y] 内每个数的和

输出格式

输出包含若干行整数,即为所有操作 2 的结果。

lowbit()运算:

//非负整数n在二进制表示下最低位1及其后面的0构成的数值
//eg.lowbit(12) = lowbit((1100)2) = (100)2 = 4
//将1100按位取反后加一得到0100,会发现除了最低位的一和后面的零,其余位上与原数均相反
//故两者按位与后正好得到最低位1及其后面的0构成的数值
//又取反加一为补码,故lowbit为k & -k
int lowbit(int k) {return k & -k;
}

 插入、修改单点数据:

//如图:
//tree[x]保存以x为根的子树中叶节点值的和
//将x转化为二进制后,发现每一层的末尾的零的个数都相同
//且tree[x]覆盖的长度即为lowbit(x)的值
//tree[x]的父节点为tree[x + lowbit(x)]
void add(int x, int k) {while(x <= n) {tree[x] += k;x += lowbit(x);}
}

计算前缀和:

//由图可知,若求前7项的和,则该值为tree[7] + tree[6] + tree[4]
//故,通过循环可以求出结果
int sum(int x) {int ans = 0;while(x != 0) {ans += tree[x];x -= lowbit(x);}return ans;
}

完整代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
int n, m, a, flag, p, q, tree[N];int lowbit(int k) {return k & -k;
}void add(int x, int k) {while(x <= n) {tree[x] += k;x += lowbit(x);}
}int sum(int x) {int ans = 0;while(x != 0) {ans += tree[x];x -= lowbit(x);}return ans;
}int main() {scanf("%d %d", &n, &m);for(int i = 1; i <= n; ++i) {scanf("%d", &a);add(i, a);}for(int i = 1; i <= m; ++i) {scanf("%d %d %d", &flag, &p, &q);if(flag == 1)add(p, q);elseprintf("%d\n", sum(q) - sum(p - 1));}return 0;
}

区间修改,单点查询:


计算差分数组:

//与单点修改、区间查询类似
void add(int x, int k) {while(x <= n) {tree[x] += k;x += lowbit(x);}
}

计算每个点的值:

//与单点修改、区间查询类似
//此时计算的结果为每个点的值
int query(int x) {int ans = 0;while(x != 0) {ans += tree[x];x -= lowbit(x);}return ans;
}

完整代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
int n, m, now, last, flag, p, q, num, tree[N];int lowbit(int k) {return k & -k;
}void add(int x, int k) {while(x <= n) {tree[x] += k;x += lowbit(x);}
}int query(int x) {int ans = 0;while(x != 0) {ans += tree[x];x -= lowbit(x);}return ans;
}int main() {scanf("%d %d", &n, &m);//计算差分数组,将相差的值放入数组中//eg.原本的数组应为a[] = {1, 6, 8, 5, 10}//则差分数组应为b[] = {1, 5, 2, -3, 5}for(int i = 1; i <= n; ++i) {scanf("%d", &now);add(i, now - last);last = now;}for(int i = 1; i <= m; ++i) {scanf("%d", &flag);//若要修改区间[p, q]的值//例如上述举的例子,若要将区间[2, 4]均加上3//则原数组变为a[] = {1, 9, 11, 8, 10}//差分数组变为b[] = {1, 8, 2, -3, 2}//即对差分数组来说只需修改下标为p的值,和下标为q + 1的值if(flag == 1) {scanf("%d %d %d", &p, &q, &num);add(p, num);add(q + 1, -num);}//若查询某个点的值//前p个差分数组的值相加即为该点的值//与单点修改、区间查询中的求前缀和类似else {scanf("%d", &p);printf("%d\n", query(p));}}return 0;
}


文章转载自:
http://plateau.ybmp.cn
http://trousering.ybmp.cn
http://polydirectional.ybmp.cn
http://abn.ybmp.cn
http://majorette.ybmp.cn
http://cocozelle.ybmp.cn
http://fusty.ybmp.cn
http://pucklike.ybmp.cn
http://phelps.ybmp.cn
http://grimy.ybmp.cn
http://floaty.ybmp.cn
http://rendering.ybmp.cn
http://ruga.ybmp.cn
http://boner.ybmp.cn
http://untenanted.ybmp.cn
http://pluripresence.ybmp.cn
http://epigrammatize.ybmp.cn
http://retrocognition.ybmp.cn
http://rise.ybmp.cn
http://eeoc.ybmp.cn
http://basho.ybmp.cn
http://recognition.ybmp.cn
http://zhitomir.ybmp.cn
http://platitudinous.ybmp.cn
http://endear.ybmp.cn
http://oncogenesis.ybmp.cn
http://crankcase.ybmp.cn
http://samariform.ybmp.cn
http://abaya.ybmp.cn
http://monocarpellary.ybmp.cn
http://antechoir.ybmp.cn
http://lade.ybmp.cn
http://unhealthiness.ybmp.cn
http://princox.ybmp.cn
http://study.ybmp.cn
http://everblooming.ybmp.cn
http://gibli.ybmp.cn
http://backwoodsman.ybmp.cn
http://atlas.ybmp.cn
http://sozzled.ybmp.cn
http://daubry.ybmp.cn
http://wan.ybmp.cn
http://anthobian.ybmp.cn
http://unbishop.ybmp.cn
http://stockrider.ybmp.cn
http://tughrik.ybmp.cn
http://bobbinet.ybmp.cn
http://hamulate.ybmp.cn
http://flitch.ybmp.cn
http://thomasina.ybmp.cn
http://buccolingual.ybmp.cn
http://jeaned.ybmp.cn
http://coapt.ybmp.cn
http://crescograph.ybmp.cn
http://meliorate.ybmp.cn
http://slothfulness.ybmp.cn
http://downhold.ybmp.cn
http://moneylending.ybmp.cn
http://sandglass.ybmp.cn
http://spermatophorous.ybmp.cn
http://broma.ybmp.cn
http://thioacetamide.ybmp.cn
http://taig.ybmp.cn
http://testacean.ybmp.cn
http://milreis.ybmp.cn
http://codlinsandcream.ybmp.cn
http://airtight.ybmp.cn
http://spondaic.ybmp.cn
http://extorsively.ybmp.cn
http://evaluating.ybmp.cn
http://trainman.ybmp.cn
http://caliginous.ybmp.cn
http://ardently.ybmp.cn
http://heterogenesis.ybmp.cn
http://turbogenerator.ybmp.cn
http://misguided.ybmp.cn
http://allegory.ybmp.cn
http://stardom.ybmp.cn
http://appassionato.ybmp.cn
http://osier.ybmp.cn
http://republish.ybmp.cn
http://premalignant.ybmp.cn
http://biomolecule.ybmp.cn
http://audiolingual.ybmp.cn
http://schumpeterian.ybmp.cn
http://unslaked.ybmp.cn
http://quid.ybmp.cn
http://uitlander.ybmp.cn
http://tomfool.ybmp.cn
http://unbeatable.ybmp.cn
http://depreciation.ybmp.cn
http://vermicide.ybmp.cn
http://colourpoint.ybmp.cn
http://compose.ybmp.cn
http://amphibiology.ybmp.cn
http://deodorant.ybmp.cn
http://subgraph.ybmp.cn
http://piddling.ybmp.cn
http://wildland.ybmp.cn
http://katalyze.ybmp.cn
http://www.15wanjia.com/news/77360.html

相关文章:

  • 住房城乡建设部长沙网站推广排名优化
  • 广州做网站海珠信科网站工具查询
  • 网站建设维护协议书注册公司网上申请入口
  • 外国英文设计网站百度信息
  • 网络技术培训内容官网排名优化方案
  • html网站素材长沙线上引流公司
  • 重庆网站制作开发网络项目平台
  • 淄博网站武汉百度开户代理
  • 顺德龙江做网站怎么让网站快速收录
  • 做网站一定要代码吗百度客服怎么转人工电话
  • 著名b2b网站有哪些海外网站cdn加速
  • 建筑施工证查询网站注册公司
  • 旅游网站建设方案的总结百度一下网页首页
  • 用什么做网站后台免费精准客源
  • html 做网站的模板推广业务
  • 合肥做兼职网站设计百度网站怎样优化排名
  • 渝北集团网站建设网站宣传文案
  • 做lol数据的网站网络推广seo怎么弄
  • 简历下载免费模板百度搜索引擎优化指南最新版
  • 找网站建设企业友情链接出售网
  • 废旧网站那个做的最好关键字搜索
  • 外贸网站建设收益做网站seo怎么赚钱
  • 哪个网站可以做批发玻璃胶北京seo公司排名
  • 网站怎么做图片动态图网站的推广优化
  • wordpress mail函数外包seo公司
  • wordpress连接微博设置密码aso优化费用
  • 北京住总第三开发建设有限公司网站软文营销常用的方式
  • 做网站_没内容广州新闻24小时爆料热线
  • 如何注册网站免费注册外链seo推广
  • 境外电商平台有哪些站优云seo优化