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

建站行业有前途各国足球世界排名

建站行业有前途,各国足球世界排名,ps软件下载官网免费,长春专业网站建设一个集成在 gcc、clang 编译器中的编译指令&#xff0c;可以有效测试程序中的一些诸如数组越界、未定义行为等情况。 举个例子&#xff1a; #include <bits/stdc.h> using namespace std;const int maxn2e55,mxr1e5,maxm1e75; int head[maxn],nxt[maxn],to[maxn],f[max…

一个集成在 gccclang 编译器中的编译指令,可以有效测试程序中的一些诸如数组越界、未定义行为等情况。

举个例子:

#include <bits/stdc++.h>
using namespace std;const int maxn=2e5+5,mxr=1e5,maxm=1e7+5;
int head[maxn],nxt[maxn],to[maxn],f[maxn][25],cnt,dep[maxn],rot[maxn],ans[maxn];struct node{int ls,rs,sum,mx;}t[maxm];void add(int x,int y){to[++cnt]=y;nxt[cnt]=head[x];head[x]=cnt;}void dfs(int x,int fa)
{f[x][0]=fa;dep[x]=dep[fa]+1;for(int i=1;i<20;++i)f[x][i]=f[f[x][i-1]][i-1];for(int i=head[x];i;i=nxt[i]){if(to[i]==fa) continue;dfs(to[i],x);}
}int lca(int x,int y)
{if(dep[x]<dep[y]) swap(x,y);for(int i=25;i>=0;i--) if(dep[f[x][i]]>=dep[y]) x=f[x][i];if(x==y) return x;for(int i=25;i>=0;i--) if(f[x][i]!=f[y][i]) x=f[x][i],y=f[y][i];return f[x][0];
}void pushup(int k)
{if(t[t[k].ls].mx>=t[t[k].rs].mx)t[k].mx=t[t[k].ls].mx,t[k].sum=t[t[k].ls].sum;else if(t[t[k].ls].mx<t[t[k].rs].mx)t[k].mx=t[t[k].rs].mx,t[k].sum=t[t[k].rs].sum;
}void update(int &rt,int l,int r,int x,int v)
{if(!rt) rt=++cnt;if(l==r) {t[rt].mx+=v,t[rt].sum=x;return;}int mid=(l+r)/2;if(x<=mid) update(t[rt].ls,l,mid,x,v);else update(t[rt].rs,mid+1,r,x,v);pushup(rt);
}void merge(int &p,int q,int l,int r)
{if(!p||!q) {p=p+q;return;}if(l==r) {t[p].mx+=t[q].mx;return;}int mid=(l+r)/2;merge(t[p].ls,t[q].ls,l,mid),merge(t[p].rs,t[q].rs,mid+1,r);pushup(p);
}void calc(int x,int fa)
{for(int i=head[x];i;i=nxt[i]){if(to[i]==fa) continue;calc(to[i],x);merge(rot[x],rot[to[i]],1,mxr);}if(t[rot[x]].mx>0) ans[x]=t[rot[x]].sum;
}int main()
{int n,m;cin>>n>>m;for(int i=1;i<n;i++){int a,b;cin>>a>>b;add(a,b);add(b,a);} cnt=0;dfs(1,0);while(m--){int x,y,z;cin>>x>>y>>z;int tmp=lca(x,y);update(rot[x],1,mxr,z,1);update(rot[y],1,mxr,z,1);update(rot[tmp],1,mxr,z,-1);update(rot[f[tmp][0]],1,mxr,z,-1);	}calc(1,0);for(int i=1;i<=n;i++) cout<<ans[i]<<endl;return 0;
}

来自雨天的尾巴 /【模板】线段树合并。

这段程序存在倍增数组越界,我们用 g++ -o a a.cpp -fsanitize=address

测试结果:runtime error: index 25 out of bounds for type 'int [25]'

剩下的之后再写。

http://www.dt0577.cn/news/17012.html

相关文章:

  • 视频网站的防盗链是怎么做的代写稿子的平台
  • 郑州建站模板搭建网站关键词优化的步骤和过程
  • 网站建设平台加盟seo网站排名查询
  • 定制网站就上爱用建站最近一周新闻大事摘抄
  • 天津市住房和城乡建设委员会官方网站网络营销策划书论文
  • 房产交易网站网易企业邮箱
  • 淄博做网站建设的公司百度账户代运营
  • 大庆建设局网站首页深圳百度竞价推广
  • 云服务器怎么发布网站焦作网站seo
  • 外贸移动端网站模板自己如何做一个网站
  • 学网站建设好么安卓优化大师官网下载
  • 域名注册网站源码福州百度代理
  • 抖音代运营介绍网站seo哪家公司好
  • 推广展示类网站官方网站百度一下
  • 链接网站怎么做站长统计app下载免费
  • 公司做网络宣传哪个网站比较好营销网络推广方式有哪些
  • 大丰住房和城乡建设局网站网页模板
  • 篇高端网站愿建设上海城市分站seo
  • 浙江省电子商务网站建设百度推广客户端电脑版
  • 怎么提高网站浏览量综合型b2b电子商务平台网站
  • 网络网站如何推广经典网络营销案例
  • alex网站建设百度投诉中心在线申诉
  • 北京市住房和城乡建设委员会官方网站的今天特大新闻
  • 软件设计师中级资料seo和sem的区别是什么
  • 开发公司采取措施成立新班推动工作seo网络推广招聘
  • 天津网站建设制作方案站长工具排行榜
  • 宁波网站建设的详细策划网络推广免费网站
  • 做内衣的网站可以免费发广告的网站
  • 武安网站建设价格google seo是什么啊
  • 电商网站商品中心设计方案百度推广登录