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

汽车品牌推广方案廊坊百度快照优化排名

汽车品牌推广方案,廊坊百度快照优化排名,电脑做网站软件,wordpress作者英文版Description 给定一个 n n n 个点、 m m m 条边的图,有 q q q 次询问,每次询问一个 [ l , r ] [l,r] [l,r] 的区间,求将 n n n 个点分为两个部分后,编号在 [ l , r ] [l,r] [l,r] 内的边中,两端点属于同一部分的…

Description

给定一个 n n n 个点、 m m m 条边的图,有 q q q 次询问,每次询问一个 [ l , r ] [l,r] [l,r] 的区间,求将 n n n 个点分为两个部分后,编号在 [ l , r ] [l,r] [l,r] 内的边中,两端点属于同一部分的边权最大值最小是多少。

Solution

转换一下题意,删去一些边使得剩下的图是一个二分图,使得删去的边权最大值最小。

上来看到最大值最小,立马想到二分答案,每次二分一个边权 m i d mid mid,将所有边权大于 m i d mid mid 的加入图中,用扩展域并查集判断是否是二分图。

时间复杂度 O ( q log ⁡ m ( n + m α ( n ) ) ) O(q\log m(n+m\alpha(n))) O(qlogm(n+mα(n)))

但是你发现 O ( log ⁡ m ) O(\log m) O(logm) 是没必要的,先将边按边权从大到小排序,若编号属于 [ l , r ] [l,r] [l,r] 就加入图中,如果加完这条边变奇图了那么这条边的边权就是答案。

时间复杂度 O ( q ( n + m α ( n ) ) ) O(q(n+m\alpha(n))) O(q(n+mα(n))),由于 CF的神仙机子以及 6 6 6 秒的实现可以暴力通过。

考虑如何优化,发现每一次加入边后的图实际上只有 O ( n ) O(n) O(n) 条边会对下次加边造成影响,即一些树边(可能是森林)和可能有的一条边权最大的非树边(当前答案),它们可以代表当前的图,同时一些边在多组询问中都被并入一次,而将询问上到线段树上就可以避免。

所以我们开一棵线段树,节点 [ l , r ] [l,r] [l,r] 表示将编号 [ l , r ] [l,r] [l,r] 的边并完后能代表这个图的 O ( n ) O(n) O(n) 条边,同时按边权从大到小排序,合并时先归并排序,将左右儿子的代表边集和在一起,然后求出新图的代表边集,建树复杂度为 O ( m log ⁡ m α ( n ) ) O(m\log m\alpha(n)) O(mlogmα(n))

查询时将 [ l , r ] [l,r] [l,r] 的代表边集暴力求答案,复杂度 O ( q n α ( n ) log ⁡ m ) O(qn\alpha(n)\log m) O(qnα(n)logm)

还可以继续,将询问离线离散化,树上节点 [ l , r ] [l,r] [l,r] 表示 [ b l , b r + 1 ) [b_l,b_{r+1}) [bl,br+1) 区间的代表边集,其中 b b b 是离散数组。

记得离散询问 [ l , r ] [l,r] [l,r] 时,离散 l l l r + 1 r+1 r+1,查询时取出 [ c l , c r + 1 − 1 ] [c_l,c_{r+1}-1] [cl,cr+11] 的代表集暴力即可,其中 c i c_i ci 表示 i i i 离散后的编号,若询问中没有 1 1 1 m m m,记得加进离散。

时间复杂度 O ( m log ⁡ q α ( n ) + q n α ( n ) log ⁡ q ) O(m\log q\alpha(n)+qn\alpha(n)\log q) O(mlogqα(n)+qnα(n)logq)

Code

#include<bits/stdc++.h>
using namespace std;
#define ls x<<1
#define rs x<<1|1
struct edge{int x,y,z;
}e[1000010];
bool cmp(edge x,edge y){return x.z>y.z;
}
#define ve vector<edge> 
int n,m,q,tot;
int b[6060],siz[2020],fa[2020];
ve tr[4000040];
struct que{int l,r;
}qu[3030];
int find(int x){if(fa[x]==x) return x;return fa[x]=find(fa[x]);
}
bool uni(int x,int y){int fx=find(x),fy=find(y);if(fx==fy) return 0;if(siz[fx]>siz[fy]) swap(fx,fy);siz[fy]+=siz[fx];fa[fx]=fy;return 1;
}
void reset(int x){fa[x]=x,fa[x+n]=x+n;siz[x]=1,siz[x+n]=1;
}
pair<ve,int> solve(ve tmp){ve ans;for(auto x:tmp){reset(x.x),reset(x.y);}for(auto i:tmp){int x=find(i.x),y=find(i.y);if(x!=y){if(uni(i.x,i.y+n)&&uni(i.y,i.x+n)){ans.push_back(i);}}else{ans.push_back(i);return {ans,i.z};break;}}return {ans,-1};
}
ve merge(ve l,ve r){ve tmp;int fl1=0,fl2=0;while(fl1<l.size()&&fl2<r.size()){if(cmp(l[fl1],r[fl2])){tmp.push_back(l[fl1++]);}else{tmp.push_back(r[fl2++]);}}while(fl1<l.size()) tmp.push_back(l[fl1++]);while(fl2<r.size()) tmp.push_back(r[fl2++]);auto ans=solve(tmp);return ans.first;
}
void build(int x,int l,int r){if(l==r){ve tmp;for(int i=b[l];i<b[l+1];i++){tmp.push_back(e[i]);}sort(tmp.begin(),tmp.end(),cmp);auto ans=solve(tmp);tr[x]=ans.first;return ;}int mid=l+r>>1;build(ls,l,mid),build(rs,mid+1,r);tr[x]=merge(tr[ls],tr[rs]);
}
ve query(int x,int l,int r,int L,int R){if(l>=L&&r<=R){return tr[x];}int mid=l+r>>1;if(R<=mid) return query(ls,l,mid,L,R);if(L>=mid+1) return query(rs,mid+1,r,L,R);return merge(query(ls,l,mid,L,R),query(rs,mid+1,r,L,R));
}
int main(){ios::sync_with_stdio(0);cin.tie(nullptr);cin>>n>>m>>q;for(int i=1;i<=m;i++){cin>>e[i].x>>e[i].y>>e[i].z;}for(int i=1;i<=q;i++){cin>>b[++tot]>>b[++tot];b[tot]++;qu[i]={b[tot-1],b[tot]};}b[++tot]=1;sort(b+1,b+1+tot);tot=unique(b+1,b+1+tot)-b-1;b[tot+1]=m+1;  //注意细节build(1,1,tot);for(int i=1;i<=q;i++){int l=lower_bound(b+1,b+1+tot,qu[i].l)-b;int r=lower_bound(b+1,b+1+tot,qu[i].r)-b-1;ve tmp=query(1,1,tot,l,r);int ans=solve(tmp).second;cout<<ans<<'\n';}return 0;
}
http://www.tj-hxxt.cn/news/77876.html

相关文章:

  • 佛山专业网站建设价格营销托管全网营销推广
  • 我的家乡湛江网站设计百度如何快速收录网站
  • 网页设计尺寸1920西安seo排名公司
  • 有没有帮人做机械设计的网站seo排名点击首页
  • 哈尔滨自助建站平台品牌推广运营策划方案
  • 个人网站怎么申请微信营销策略
  • 社交做的最好的网站有哪些企业查询天眼查
  • 网站建设需要多长时间semi认证
  • google网站优化器seo搜索引擎优化期末考试
  • 婚纱影楼网站百度识图在线入口
  • 游戏充值网站怎么做百度游戏排行榜风云榜
  • wordpress个人博客主题推荐深圳市seo网络推广哪家好
  • 南阳网站推广价格如何发布自己的广告
  • 网站排名降级的原因有哪些太原网站关键词推广
  • 做网络写手 哪个网站比较好seo流量
  • 全国十大网站建设公司百度问一问人工客服怎么联系
  • 没建网站 备案十大最靠谱培训机构
  • 做弩的网站学生个人网页制作代码
  • 长沙做软件的公司重庆seo顾问
  • 网站前台设计过程济南市最新消息
  • 广州市荔湾区网站建设自媒体人专用网站
  • 做网站用Linux还是win网页制作html代码
  • 做地税电子签章的网站百度网盘app官网下载
  • 营销型网站建设品牌如何推广自己的业务
  • 商场网站开发搜索引擎推广一般包括哪些
  • 厦门建设管理局网站活动推广方案策划
  • 42区 网站开发指南设计网站一般多少钱
  • 建设99网站网络推广公司深圳
  • 大数据做网站流量分析台州网站优化公司
  • jquery扁平自适应网站html5模板近三天发生的重要新闻