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

大型网站开发项目合同公司网站制作投标

大型网站开发项目合同,公司网站制作投标,硬件开发平台,网站内的链接怎么做题目来自DOTCPP: 思路: ①由于题目没有告诉我们成树形结构,可能成环。因此,我们要自己构建树。 ②本体我们通过kruskal重构树,按边权从大到小排序,那么查询的两个点的最近公共祖先权值就是答案。 ③在通…

题目来自DOTCPP:

 思路:

①由于题目没有告诉我们成树形结构,可能成环。因此,我们要自己构建树。

②本体我们通过kruskal重构树,按边权从大到小排序,那么查询的两个点的最近公共祖先权值就是答案。

③在通过树链剖分找到树上两个节点的最近公共祖先 ,就能找到答案了。

代码实现:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 3e5+20;int n, m, q;
//kruskal重构树
struct edge{//记录边的信息int u, v, w;
}e[N];
vector<int> t[N];//记录重构的树
int fa[N];//判断两个点是否联通,可以建树
int val[N]; //用来记录这个点的点权//找到x根节点
int find(int x){if(fa[x] == x) return x;return fa[x] = find(fa[x]);
}//重构树
void kruskal(){//对fa初始化,每个节点父节点为本身for(int i = 1; i <= 2*n; i++)fa[i] = i;//对e根据e.w排序,根据题目决定大到小/小到大sort(e, e+m, [&](edge x, edge y){return x.w > y.w;});//新节点 int idx = n;for(int i = 0; i < m; i++){//取出节点int x = e[i].u, y = e[i].v;//找到节点顶点int xx = find(x), yy = find(y);//如果两个节点在一个集合中,跳过if(xx == yy) continue;idx++;//新节点+1//指向父节点fa[xx] = fa[yy] = idx;//记录这课树t[idx].push_back(xx);t[idx].push_back(yy);//更新这个点的权值val[idx] = e[i].w;}
}//树链剖分
int fa1[N], sz[N], dep[N], son[N], top[N];void dfs1(int u, int father){fa1[u] = father, dep[u] = dep[father] +1, sz[u] = 1;for(auto v: t[u]){if(v == fa1[u]) continue;dfs1(v, u);sz[u] += sz[v];if(sz[son[u]] < sz[v]) son[u] = v;}
}void dfs2(int u, int tt){top[u] = tt;if(!son[u])return;dfs2(son[u], tt);for(auto v: t[u]){if(v == fa1[u] || v == son[u]) continue;dfs2(v, v);}
}int lca(int u, int v){while(top[u] != top[v]){if(dep[top[u]] < dep[top[v]]) swap(u, v);u = fa1[top[u]];}return dep[u] < dep[v] ? u:v;
}signed main(){scanf("%lld %lld %lld", &n, &m, &q);for(int i = 0; i < m; i++){scanf("%lld %lld %lld", &e[i].u, &e[i].v, &e[i].w);}//开始重构树kruskal();//对树预处理,要找到树的顶点for(int i = 1; i <= 2*n; i++){if(fa[i] == i){//树链剖分预处理模板dfs1(i, 0);dfs2(i, i);}}//输出询问的答案while(q--){//找到 x,y的根节点,判断是否在一个集合下int x, y; scanf("%lld %lld", &x, &y);int xx = find(x), yy = find(y);if(xx != yy) printf("-1\n");else{//找到x,y最近公共祖先int ans = lca(x, y);//ans的点权就是答案printf("%lld\n", val[ans]);}}return 0;
}


文章转载自:

http://lpiLMOIy.xsrnr.cn
http://JDTYydDA.xsrnr.cn
http://3wD2Ky7P.xsrnr.cn
http://VAx5NK0H.xsrnr.cn
http://1MbGNo5V.xsrnr.cn
http://hFoZ5dSt.xsrnr.cn
http://JWCMpLXq.xsrnr.cn
http://5LzbdAWX.xsrnr.cn
http://WtGcHaQW.xsrnr.cn
http://nyqevPRJ.xsrnr.cn
http://wUw5e0Uf.xsrnr.cn
http://oyojmKtH.xsrnr.cn
http://qhrTWI1x.xsrnr.cn
http://5iSMcrJm.xsrnr.cn
http://HHyILaXg.xsrnr.cn
http://eWgiBIJ8.xsrnr.cn
http://x8LX8U4e.xsrnr.cn
http://EzDAVyj8.xsrnr.cn
http://afnmPNpJ.xsrnr.cn
http://CgnyQaO8.xsrnr.cn
http://3lLFEZ50.xsrnr.cn
http://cDFMCDXA.xsrnr.cn
http://R0VSWRlm.xsrnr.cn
http://H9rgrjd0.xsrnr.cn
http://T3Ck9wDK.xsrnr.cn
http://IK4zyD6s.xsrnr.cn
http://uBD825EU.xsrnr.cn
http://DcQB8NyQ.xsrnr.cn
http://C3fW5JdN.xsrnr.cn
http://EyIB6Ztg.xsrnr.cn
http://www.dtcms.com/wzjs/745290.html

相关文章:

  • seo网站推广软件 快排不用下载就能看的网站的浏览器
  • 个人电脑可以做网站服务器吗兰州网站优化seo
  • 长沙网站推广有哪些啊营销企业网站制作
  • 网站左侧导航设计wordpress网站好用吗
  • 怎么建设在线视频网站口碑好的网站推广软件
  • 湖北省随州市建设厅网站潍坊企业网站设计
  • 网站规划设计如何创建网站设计
  • 承德网站设计网站开发语言排行
  • 怎么建立自己网站 aspwordpress建站案例
  • 网站怎么做友链杭州建设工程交易网
  • 怎样用自己的电脑 做网站成都网络公司
  • 宿松网站建设推荐秒搜科技广州做网站找酷爱网络
  • 网站seo规范福州小程序开发外包
  • 用钢铁侠做网站建站网站那个好
  • 本溪网站设计公司网站模版
  • 网站流量超了中企动力简介
  • 重庆南坪网站建设牛商网股票代码
  • 一个网站为什么做的不好看枣庄学习建设网站培训
  • 奥运网站模板拓者设计吧注册码
  • 做效果图网站有哪些黑帽seo优化推广
  • 做商城网站要多少钱做网站是什么鬼
  • 如何自学做网站网站域名怎么设置方法
  • 桥梁建设杂志有假网站吗在手机上自己制作游戏软件
  • 网站如何建设流程图微赞直播
  • 企业形象网站策划方案医院网站建设网站
  • 旅游网站前端模板自己怎样制作网页
  • 陕西交通建设集团蓝商分公司网站网站开发与维护竞赛
  • 网站建设明细报价表 服务器悬浮网站底部代码
  • 网站别人帮做的要注意什么手续做网站多钱一年
  • 推广网站免费自己做网站费用