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

怎么做个工程网页制作推广东莞网络优化调查公司

怎么做个工程网页制作推广,东莞网络优化调查公司,关于做花茶网站的策划书,网站邮件推送目录 简单介绍 题目 1. 上帝造题的七分钟 2 2.SUM and REPLACE 3. And RMQ 总结 简单介绍 题目 1. 上帝造题的七分钟 2 链接#xff1a;https://www.luogu.com.cn/problem/P4145 维护两种操作 1.区间开根号(下取整) 2.区间和询问 显然无法通过懒标记来计算区间开根号…目录 简单介绍 题目 1. 上帝造题的七分钟 2  2.SUM and REPLACE 3. And RMQ 总结  简单介绍 题目 1. 上帝造题的七分钟 2  链接https://www.luogu.com.cn/problem/P4145 维护两种操作 1.区间开根号(下取整) 2.区间和询问 显然无法通过懒标记来计算区间开根号后的值其由叶子结点本身的值决定。容易发现当一个数连续进行开根号操作会在很少的次数变为1且值不再改变1即为零势能点。因此我们可以维护区间max。一旦区间修改时发现此区间的max1时我们不需要再次修改直接return即可否则向下递归修改。 Code: #includebits/stdc.h using namespace std; #define PII pairint,int #define endl \n #define int long long const int N1e510; struct segment_tree {int a[N];struct node {int l,r;int mx,sum;}tr[N2];void build(int u,int l,int r) {tr[u].ll,tr[u].rr;if(lr) {tr[u].mxtr[u].suma[l];return ;}int mid(lr)1;build(u1,l,mid);build(u1|1,mid1,r);pushup(u);} void modify(int u,int l,int r) {if(tr[u].mx1) return ;if(tr[u].ltr[u].r) {tr[u].mxsqrt(tr[u].mx);tr[u].sumtr[u].mx;return ;}int mid(tr[u].ltr[u].r)1;if(lmid) modify(u1,l,r);if(rmid) modify(u1|1,l,r);pushup(u);} int query(int u,int l,int r) {if(tr[u].lltr[u].rr) {return tr[u].sum;}int mid(tr[u].ltr[u].r)1;int res0;if(lmid) resquery(u1,l,r);if(rmid) resquery(u1|1,l,r);return res;}void pushup(int u) {tr[u].sumtr[u1].sumtr[u1|1].sum;tr[u].mxmax(tr[u1].mx,tr[u1|1].mx);} }ST; signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n,m;cinn;for(int i1;in;i) cinST.a[i];ST.build(1,1,n);cinm;while(m--) {int op,l,r;cinoplr;if(lr) swap(l,r);if(op0) ST.modify(1,l,r);else coutST.query(1,l,r)endl; } } 2.SUM and REPLACE 链接https://codeforces.com/contest/920/problem/F 定义f(x)为x因子的数量 维护三种操作 1.区间修改xf(x)   2.区间和查询 手动模拟f(x)可以发现进行f(x)操作数值单调不增且x2时其值不在改变因此同上题一样维护区间最大值即可。f(x)可以O(nlogn)时间预处理出来。 #includeiostream #includecmath #includecstring #includealgorithm #includecstdio #includevector #includequeue #includemap #includeset using namespace std; #define PII pairint,int #define endl \n #define int long long const int N3e510,M1e610; int d[M1]; struct segment_tree {int a[N];struct node {int l,r;int mx,sum;}tr[N2];void build(int u,int l,int r) {tr[u].ll,tr[u].rr;if(lr) {tr[u].mxtr[u].suma[l];return ;}int mid(lr)1;build(u1,l,mid);build(u1|1,mid1,r);pushup(u);} void modify(int u,int l,int r) {if(tr[u].mx2) return ;if(tr[u].ltr[u].r) {tr[u].mxd[tr[u].mx];tr[u].sumtr[u].mx;return ;}int mid(tr[u].ltr[u].r)1;if(lmid) modify(u1,l,r);if(rmid) modify(u1|1,l,r);pushup(u);} int query(int u,int l,int r) {if(tr[u].lltr[u].rr) {return tr[u].sum;}int mid(tr[u].ltr[u].r)1;int res0;if(lmid) resquery(u1,l,r);if(rmid) resquery(u1|1,l,r);return res;}void pushup(int u) {tr[u].sumtr[u1].sumtr[u1|1].sum;tr[u].mxmax(tr[u1].mx,tr[u1|1].mx);} }; signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);for(int i1;iM;i) { //预处理for(int ji;jM;ji) {d[j];}}int n,m;cinnm;segment_tree ST;for(int i1;in;i) cinST.a[i];ST.build(1,1,n);while(m--) {int op,l,r;cinoplr;if(op1) ST.modify(1,l,r);else coutST.query(1,l,r)endl;} } 3. And RMQ 链接 维护三个操作 1.区间按位与x 2.区间最大值 3.单点修改 这题零势能点藏得较深我们考虑将x二进制展开发现在x的二进制位为零的位置区间所有数的二进制位也为零则操作可以忽略。维护区间或      当 orsum x orsum,则直接return  Code: #includeiostream #includecmath #includecstring #includealgorithm #includecstdio #includevector #includequeue #includemap #includeset using namespace std; #define PII pairint,int #define endl \n const int N4e510; struct segment_tree {int a[N];struct node {int l,r;int mx,sum;}tr[N2];void build(int u,int l,int r) {tr[u].ll,tr[u].rr;if(lr) {tr[u].mxtr[u].suma[l];return ;}int mid(lr)1;build(u1,l,mid);build(u1|1,mid1,r);pushup(u);} void modify(int u,int l,int r,int x) {if((tr[u].sumx)tr[u].sum) return ;if(tr[u].ltr[u].r) {tr[u].mxtr[u].mxx;tr[u].sumtr[u].mx;return ;}int mid(tr[u].ltr[u].r)1;if(lmid) modify(u1,l,r,x);if(rmid) modify(u1|1,l,r,x);pushup(u);} int query(int u,int l,int r) {if(tr[u].lltr[u].rr) {return tr[u].mx;}int mid(tr[u].ltr[u].r)1;int res0;if(lmid) resmax(res,query(u1,l,r));if(rmid) resmax(res,query(u1|1,l,r));return res;}void update(int u,int k,int x) {if(tr[u].ltr[u].r) {tr[u].mxtr[u].sumx;return ;}int mid(tr[u].ltr[u].r)1;if(kmid) update(u1,k,x);else update(u1|1,k,x);pushup(u);}void pushup(int u) {tr[u].sumtr[u1].sum|tr[u1|1].sum;tr[u].mxmax(tr[u1].mx,tr[u1|1].mx);} }ST; int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n,m;cinnm;for(int i1;in;i) cinST.a[i];ST.build(1,1,n);while(m--) {int l,r,x;string op;cinop;if(opAND) {cinlrx;ST.modify(1,l,r,x);}else if(opUPD) {cinlx;ST.update(1,l,x);}else {cinlr;coutST.query(1,l,r)endl;}} } 总结  1.对于区间修改操作修改操作会使得值在趋向零势能点前严格单调减少在变为零势能点后不在变化。需要维护一个值来界定是否到达零势能 2.且题目不能出现其他非单调的区间修改操作如区间加区间乘等。如果有其他修改操作可以通过构造形如 update1 ,update 2,update 1,update 2 的数据破坏单调性从而使操作1复杂度变为暴力修改的O(nlogn)
http://www.hkea.cn/news/14404538/

相关文章:

  • 苏州正规网站建设概况在手机上怎么建造网站
  • app网站推广平台东莞市手机网站建设品牌
  • 做海报素材的网站甘肃定西校园文化设计公司
  • 网站建设毕业设计综述中国最权威的网站排名
  • 廊坊网站制作公司排名那样的网站18年
  • 安徽建设厅网站官网如何一个空间做多个网站
  • 济南微网站建设网站设计 版权
  • 柳州公司网站制作公司温州企业网站设计
  • 注重网站建设 把好宣传思想关口net网站开发的步骤txt
  • 遵义网站seo制作微信公众号网站开发
  • 建立公司微信平台 网站平台wordpress 淘口令
  • 做网站副业苏州广告公司排名前20
  • 湖南建设银行网站是多少钱企业门户首页
  • 网站建设 新手从晴天阴天雨天wordpress
  • 网站建设验收确认书建设大型网站需要什么硬件
  • 群辉做网站服务器配置网站开发语言开发
  • 网站建设图片qq群做网单哪个网站最好用
  • 怎么看网站是哪个公司做的做网站资料准备什么
  • wordpress建博客网站吗大连百度推广排名优化
  • 企业网站模板 下载企查查网页版
  • 上海外贸网站设计wordpress 图片链接
  • 在哪个网站找水利工地做网站开发的完整流程图
  • 黄骅贴吧二手房seo外链工具有用吗
  • 网站开发研究背景微信小程序制作需要什么基础
  • 郑州汉狮做网站好不惠州模板网站建设
  • 上海制作网站的公司个人简历范本
  • 南湖区建设街道办事处网站怎么查网站备案接入商
  • dede程序网站如何查看百度蜘蛛seo就业
  • 网站免费正能量软件直播帝国 网站搬家
  • 网站主题风格有哪些著名的wordpress主题