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

建站公司服务高端网站建设合同

建站公司服务,高端网站建设合同,深圳公司注册资金实缴要求,网站原型图展示学习资料:代码随想录 108. 冗余连接 卡码网题目链接(ACM模式) 判断是否有环的依据为,利用并查集,isSame函数,判断当下这条边的两个节点入集前是否为同根,如果是的话,该边就是会构…

学习资料:代码随想录

108. 冗余连接

卡码网题目链接(ACM模式)

判断是否有环的依据为,利用并查集,isSame函数,判断当下这条边的两个节点入集前是否为同根,如果是的话,该边就是会构成环的那条边

#include <iostream>
#include <vector>
using namespace std;int n;
vector<int> father=vector<int>(1001,0);void init(){for(int i=0;i<n;i++){father[i]=i;}
}
int find(int u){return u==father[u]?u:father[u]=find(father[u]);
}bool isSame(int u,int v){u=find(u);v=find(v);return u==v;
}void join(int u,int v){u=find(u);v=find(v);if(u==v) return;father[v]=u;
}int main(){int s,t;cin>>n;init();for(int i=0;i<n;i++){cin>>s>>t;if(isSame(s,t)) {cout<<s<<' '<<t<<endl;return 0;}else{join(s,t);}}
}

109. 冗余连接II

卡码网题目链接(ACM模式)

分三种情况:代码随想录

对于有两个入度的节点的情况,需要先倒序记录节点入度情况,找到入度为2的那个节点对应的两条边,判断应该删除哪条边。判断方法为,先看第一条(之前是倒序遍历,即看最后这条),用isSame函数判段是否为构成环的这条边,如果是,cout这条,如果不是cout另一条;

如果没有入度为2的节点,即情况3,直接用isSame函数判断就可以了

#include <iostream>
#include <vector>
using namespace std;
int n;
vector<int> father=vector<int>(1001,0);
void init(){for(int i=1;i<=n;i++){father[i]=i;}
}int find(int u){return u==father[u]?u:father[u]=find(father[u]);
}bool isSame(int u,int v){u=find(u);v=find(v);return u==v;
}void join(int u,int v){u=find(u);v=find(v);if(u==v) return;father[v]=u;
}bool isTreeAfterDeleteEdge(const vector<vector<int>>& edges,int todelete){init();for(int i=0;i<n;i++){if(i==todelete){continue;}if(isSame(edges[i][0],edges[i][1])) return false;join(edges[i][0],edges[i][1]);}return true;
}void deletedEdge(const vector<vector<int>>& edges){init();for(int i=0;i<n;i++){if(isSame(edges[i][0],edges[i][1])){cout<<edges[i][0]<<' '<<edges[i][1];return;}join(edges[i][0],edges[i][1]);}
}int main(){cin>>n;vector<vector<int>> edges;vector<int> inDegree(n+1,0);int s,t;for(int i=0;i<n;i++){cin>>s>>t;edges.push_back({s,t});inDegree[t]++;}vector<int> doubleDegree;for(int i=n-1;i>=0;i--){if(inDegree[edges[i][1]]==2){doubleDegree.push_back(i);}}if(doubleDegree.size()>0){if(isTreeAfterDeleteEdge(edges,doubleDegree[0])){cout<<edges[doubleDegree[0]][0]<<' '<<edges[doubleDegree[0]][1];}else{cout<<edges[doubleDegree[1]][0]<<' '<<edges[doubleDegree[1]][1];}return 0;}deletedEdge(edges);}

有几个小点:

1、既然 isTreeAfterRemoveEdge()getRemoveEdge() 都是靠并查集判断是否成环,能不能只用 getRemoveEdge() 一个函数来处理所有情况?

不能!

getRemoveEdge() 只能处理「无入度为 2」的情况(即情况三)
如果你碰到的是「有一个点入度为 2」(即情况一、情况二),就必须要先判断删哪一条边,这一步 getRemoveEdge() 做不到。

2、对于find函数会改变并查集的结构,这并不改变每一个节点的根节点,所以虽然在join函数和isSame函数的使用中,find会使并查集结构改变,对判断没有影响

3、对于vector,赋值方法v[i] = x需要以前设置vector大小,赋值方法v.push_back(x)不需要提前设置vector大小


文章转载自:

http://G1QETyaG.qpxrr.cn
http://TWZ9aM7Y.qpxrr.cn
http://nzHFG0yT.qpxrr.cn
http://xgGGC7y4.qpxrr.cn
http://X9GUDQ2d.qpxrr.cn
http://Aa37lnuq.qpxrr.cn
http://M2wEBhmg.qpxrr.cn
http://giZR0oiu.qpxrr.cn
http://ecZRBQpd.qpxrr.cn
http://dFsC8Uih.qpxrr.cn
http://vYcnwbEQ.qpxrr.cn
http://zeW84zLK.qpxrr.cn
http://5SNpV7DB.qpxrr.cn
http://WZwtZcG5.qpxrr.cn
http://qchDVAE2.qpxrr.cn
http://pMnBRglc.qpxrr.cn
http://nTVXiJYW.qpxrr.cn
http://85ORbxiJ.qpxrr.cn
http://xAxWy6Pf.qpxrr.cn
http://CYER3Pf0.qpxrr.cn
http://P9Qf02PC.qpxrr.cn
http://HUBJ6XYi.qpxrr.cn
http://cYHPPcqJ.qpxrr.cn
http://RLW7SnW2.qpxrr.cn
http://fArrDpEp.qpxrr.cn
http://LBUOYQKy.qpxrr.cn
http://ZqpwnEgl.qpxrr.cn
http://71rQSXgP.qpxrr.cn
http://AfeFi9gH.qpxrr.cn
http://IQjjElMB.qpxrr.cn
http://www.dtcms.com/wzjs/644278.html

相关文章:

  • 网站开发协议中的注意事项宝塔和WordPress一样吗
  • 天津建设网站首页wordpress修改首页名称
  • 英语写作网站微商城app开发公司
  • flash做的网站网站设置域名
  • 网站建设开头聊城网站建设价位
  • 葫芦岛网站网站建设招生网站模版
  • 陶瓷网站源码嘉兴 网站 建设
  • dw做的网站解压后为什么没了wordpress两个导航栏
  • 公司宣传网站建设开题报告网站语言有几种
  • 怎么做一个论坛网站网站建设图标图片
  • g时代网站建设wordpress 微信导航菜单
  • 网站建设验收要求东莞市招投标交易中心
  • 站群管理系统cms杭州平面设计师工资一般多少
  • 新建的网站 找不到了抖音企业号官网入口
  • 网站无法链接学中文网站
  • 手机网站首页怎样做网站的当前位置栏
  • 织梦网站做关键词txt网站推荐
  • 3d演示中国空间站建造免费网页制作工具下载
  • 郑州网站建设公司服务公司设计图纸平面图
  • 柬埔寨网赌网站开发深圳工业设计公司哪家好
  • 专业网站设计建设公司wordpress在线查询系统
  • 音乐网站 模板手游app平台排行榜
  • 壁纸网站模板公司网址注册一般需要多少钱
  • 网站在国内服务器在国外什么叫网站后台
  • 潍坊网站建设科技有限公司软文自动发布软件
  • 网站制作公司司西安城乡建设网站
  • 广州设计网站建设免费空间申请哪个好
  • 案例网站模板_案例网专门做动漫的网站
  • cp网站建设方山建站报价
  • 网站配色教程开发一个app大概需要多少钱