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

连云港企业建站 网站域名注册后怎么使用

连云港企业建站 网站,域名注册后怎么使用,十大免费跨境网站,深圳网站建设就q479185700顶上【题目链接】 ybt 1551:维护序列 【题目考点】 1. 线段树 区间修改 区间查询 【解题思路】 本题与洛谷 P3373 【模板】线段树 2大体相同,只有输入输出格式略有不同,具体解析请见上题的博文。 【题解代码】 解法1:线段树 …

【题目链接】

ybt 1551:维护序列

【题目考点】

1. 线段树
  • 区间修改 区间查询

【解题思路】

本题与洛谷 P3373 【模板】线段树 2大体相同,只有输入输出格式略有不同,具体解析请见上题的博文。

【题解代码】

解法1:线段树

#include<bits/stdc++.h>
using namespace std;
#define N 100005
#define ADD 1
#define MUL 2
struct Node
{int l, r, m, val, tagAdd, tagMul;
} tree[4*N];
int n, p, m, a[N];
void pushUp(int i)
{tree[i].val = (tree[2*i].val+tree[2*i+1].val)%p;
}
void build(int i, int l, int r)
{tree[i].l = l, tree[i].r = r, tree[i].m = l+r>>1, tree[i].tagMul = 1;if(l == r){tree[i].val = a[l];return;}build(2*i, l, tree[i].m);build(2*i+1, tree[i].m+1, r);pushUp(i);
}
void addTag(int type, int i, long long v)//v设为long long保证下面的运算都是long long类型的 
{if(type == ADD){tree[i].tagAdd = (tree[i].tagAdd+v)%p;tree[i].val = (tree[i].val+(tree[i].r-tree[i].l+1)*v)%p;}else //type == MUL{tree[i].tagMul = tree[i].tagMul*v%p;tree[i].tagAdd = tree[i].tagAdd*v%p;//增加的值也乘v tree[i].val = tree[i].val*v%p;}
}
void pushDown(int i)//只有在tagAdd和tagMul二者只有其一时,才能下传 
{if(tree[i].tagAdd == 0 && tree[i].tagMul == 1)return;addTag(MUL, 2*i, tree[i].tagMul);//必须先乘后加 addTag(MUL, 2*i+1, tree[i].tagMul);addTag(ADD, 2*i, tree[i].tagAdd);addTag(ADD, 2*i+1, tree[i].tagAdd);tree[i].tagAdd = 0, tree[i].tagMul = 1;
}
void update(int type, int i, int l, int r, int v)
{if(tree[i].r < l || tree[i].l > r)return;if(l <= tree[i].l && tree[i].r <= r){addTag(type, i, v);return;}pushDown(i);update(type, 2*i, l, r, v);update(type, 2*i+1, l, r, v);pushUp(i);
}
int query(int i, int l, int r)
{if(tree[i].r < l || tree[i].l > r)return 0;if(l <= tree[i].l && tree[i].r <= r)return tree[i].val;pushDown(i);return (query(2*i, l, r) + query(2*i+1, l, r))%p;
}
int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int op, t, g, c;cin >> n >> p;for(int i = 1; i <= n; ++i)cin >> a[i];cin >> m;build(1, 1, n);while(m--){cin >> op;if(op == 1){cin >> t >> g >> c;update(MUL, 1, t, g, c);}else if(op == 2){cin >> t >> g >> c;update(ADD, 1, t, g, c);}else{cin >> t >> g;cout << query(1, t, g) << '\n';}}return 0;
}
http://www.dtcms.com/wzjs/506615.html

相关文章:

  • 中山电商网站制作百度怎么进入官方网站
  • 做站用什么网站程序资讯门户类网站有哪些
  • 政府网站建设网页设计规范免费的关键词优化工具
  • 衡水哪里可以做网站seo搜索引擎优化工具
  • 主任说到学校新网站的建设工作外链收录网站
  • 厦门 网站建设 网站开发 未来网络建站软件可以不通过网络建设吗
  • 论坛网站建设视频教程seo工程师是什么职业
  • 常州网站制作哪家好天津seo外包团队
  • Wordpress文章两级审核长沙官网seo
  • 制作网站费用分类百度seo关键词
  • 企业网站页面宽哪里设置杭州网站seo优化
  • 网站建设工作室深圳无锡百度公司代理商
  • 如何做自己的游戏网站seo行业网
  • 网站建设 还有需求吗宁波seo快速优化
  • 网页制作工具分哪两类北京官网seo收费
  • 太原制作公司网站微信引流主动被加软件
  • 培训类网站模板网络营销模式有哪些
  • 福州城乡建设委员会网站杭州网站推广找哪家
  • 微信电商小程序开发公司广州网站设计专注乐云seo
  • 用dw做音乐网站宁波seo网络推广公司排名
  • 公众号建网站什么是seo优化
  • 羽贝网站建设包就业的培训学校
  • 网站建设网络公司整站源码热门推广软件
  • 网站日记怎么看百度网站排名优化
  • 一级a做爰网站网络营销推广工具有哪些?
  • 企业网站建设及推广研究企业seo网站营销推广
  • 做外贸soho网站的公司今天新闻最新消息
  • 免费网站建设是什么旅游景区网络营销案例
  • 淘客网站如果做优化推广公司
  • 江苏网站开发建设百度推广业务电话