2017蓝桥c语言真题,[蓝桥杯][2017年第八届真题]发现环 (C语言代码)------------C语言——菜鸟级...

解题思路:

并查集 找环 未成环之前 看作一个树

用并查集找到环 两点 找的同时 建立一个 并查集树(自己瞎起的)找到两点后

从两个点分别回到并查集的根节点经过的点标记上 这两个点单独经过的点(交点处除外)都是环上点

原文  欢迎访问 我的博客

注意事项:

参考代码:#include

#include

#define N 1000002

typedef long long ll;

ll a[N][3],f[N],bj[N],jd[N];

//ll BCJ(ll s)//并查集找根和更新

//{  return f[s]==0?s:f[s]=BCJ(f[s]);

//}

ll BCJ(ll s)

{

ll tem ,tx=s;

while(f[tx]!=0)tx=f[tx];//并查集找根

while(s!=tx)//并查集更新

{ tem=f[s];

f[s]=tx;

s=tem;

}

return tx;

}

void BCJtree(ll x1,ll x2)//建立并查集树

{

ll tx=x2,next=x1,last=jd[x1]; //两树合并  父变子 子变父

while(next!=0)

{

jd[next]=tx;

tx=next;

next=last;

last=jd[next];

}

}

void xzh(ll x)//寻找环节点

{ ll last,r=x;bj[x]+=1;

while(1)

{if(jd[x]==0||bj[x]==2)break;//到并查集根节点或有重复节点 跳出

last=jd[x];

bj[last]+=1;

x=last;

}

if(bj[x]==2)// 重复节点 消重和去多余节点

{ bj[x]=1;

while(jd[x]!=0)

{last=jd[x];

bj[last]=0;

x=last;

}

}

}

int main()

{ ll i,j,s1,s2,n,flag;

while(scanf("%lld",&n)!=EOF)

{  flag=0;

memset(f,0,sizeof(f));

memset(bj,0,sizeof(bj));

memset(jd,0,sizeof(jd));

for(i=1;i<=n;i++)

{ scanf("%lld%lld",&a[i][0],&a[i][1]);

if(!flag)

{

s1=BCJ(a[i][0]);

s2=BCJ(a[i][1]);

if(s1==s2)flag=i;//如果之前已经是同集合 这为环上两点 标记

else

{

if(!f[a[i][0]]) f[s1]=s2,BCJtree(a[i][0],a[i][1]);//a[i][0]节点为单集合或作为根节点的集合

else  f[s2]=s1,BCJtree(a[i][1],a[i][0]);// 含a[i][1]的集合接在含a[i][0]的集合

}

}

}

xzh(a[flag][0]);//从 A节点开始走

xzh(a[flag][1]);//从 B节点开始走

for(i=1;i<=n;i++)

if(bj[i]==1)printf("%lld ",i);

printf("\n");

}

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python34.dll_python34.dll下载

缺少python34.dll&#xff1f;python34.dll文件是存放在电脑系统中很重要的一个文件&#xff0c;是电脑程序正常运行的重要支持&#xff0c;大家要是发现这个文件缺少了就要立马重新下载一个&#xff0c;欢迎有需要的朋友来当易网下载。dll文件特点推广模块式体系结构DLL 有助于…

python全文检索引擎_Python中使用haystack实现django全文检索搜索引擎功能

{% if query %}搜索结果如下&#xff1a; {% for result in page.object_list %} {{ result.object.gName }} {% empty %}啥也没找到 {% endfor %} {% if page.has_previous or page.has_next %}{% if page.has_previous %}{% endif %} 上一页{% if page.has_previous %}{% end…

c语言音像图书管理系统设计,c语言--图书管理系统

(1)创建音像图书库。此图书库中有图书&#xff0c;VCD&#xff0c;录像带3类&#xff0c;而每个音像图书的信息均包括编号(用B**,V**,R**分别表示图书&#xff0c;VCD和录像带的编号)&#xff0c;名称&#xff0c;原价&#xff0c;原数量及剩余数量。(2)租借音像图书。在文件&q…

python环境配置opencv_【Python】python2.7 安装配置OpenCV2

原博文 2017-05-23 22:28 − 环境&#xff1a;Ubuntu16.04 anaconda Python2.7 opencv2.4.13 安装opencv后 import cv2 遇到错误信息&#xff1a; No module named cv2 安装opencv时make的过程中会出现文件“cv2.so”&#xff0c;它是连接OpenCV和... 相关推荐 2019-12-04 13:5…

流水灯c语言程序延时失败,用c8051f340做控制流水灯实验,程序会卡死在延时函数中 ,只要在那加延时函数程序就只能跑到那,代码如下...

满意答案lohboon2016.07.31采纳率&#xff1a;52% 等级&#xff1a;7已帮助&#xff1a;1159人#include "reg52.h"#define uint unsigned int#define uchar unsigned charsbit K1 P3^2; //独立按键void Delayms(uint x){ uint i,j; for(ix;i>0;i--) for(j100;…

杨辉三角python代码 不要括号_关于杨辉三角python代码的问题

匿名用户1级2017-09-02 回答杨辉三角&#xff0c;是二项式系数在三角形中的一种几何排列。前提&#xff1a;每行端点与结尾的数为1.每个数等于它上方两数之和。每行数字左右对称&#xff0c;由1开始逐渐变大。第n行的数字有n项。第n行数字和为2n-1。第n行的m个数可表示为 C(n-1…

python 双向链表_Python实现双向链表

打开Python开发工具IDLE&#xff0c;新建‘DoubleLinkedList.py’文件&#xff0c;并写代码如下; class Node: def __init__(self,item): self.item item self.next None self.pre None class DoubleLinkedList: def __init__(self): self.__head None def add(self,item):…

android自定义view生命周期,android基础之自定义view

一、Custom View1、view的继承关系view继承关系.png2、Android 如何绘制试图层次当activity获取焦点时&#xff0c;它必须提供layout层次的根节点&#xff0c;然后android 系统开始视图的绘制过程。绘制是从layout的根节点开始的&#xff0c;按照从上往下的顺序&#xff0c;父元…

python网课期中答案_中国大学python编程答案网课MOOC考试期末慕课答案

简述班主任的职责。创新需要提出问题&#xff0c;问题产生于()。A、好奇B、质疑C、想象D、矛盾“玄米色”的炒麦香属于()A.茶类香B.品种香C.地域香D.附加香已知某实心小球是由下表中所列塑料材料中的一种制成的&#xff0e;塑料名称密度(kg&#xff0f;m3〕聚甲基戊烯0.8103聚丙…

python import如何使用_Python如何import其它.py文件及其函数

​ 如上图所示&#xff0c;我想在test_1.py文件中import我在lstm_1.py中定义的LstmParam和 LstmNetwork。我直接采用的是最简单的引用方法&#xff1a;from lstm_1 import LstmParam, LstmNetwork&#xff0c;但是很明显报错了&#xff0c;不能直接这样引用。因为&#xff0c;编…

android 数据库 字节数组,Android上的GreenDAO:字节数组作为主键/构建包含字节数组属性Where子句的查询...

关于字节[]又名在greendao BLOB&#xff1a;看着de.greenrobot.dao.query.WhereCondition.PropertyCondition.checkValueForType条件01目前不支持&#xff0c;因为如果值的类型为byte[]&#xff0c;以下几行将始终引发异常。if (value ! null && value.getClass().isAr…

艾为数字ic面试题_每日学习:数字后端面试100问(2019全新版)

关注并标星大同学吧每天1次&#xff0c;打卡学习积累1个新知识&#xff0c;增1分职场底气作者称谓&#xff1a;Tao涛个人介绍&#xff1a;摸爬滚打多年的数字后端工程师微信公众号&#xff1a;数字后端IC芯片设计半导体知识分享第29期技能升级&#xff0c;从这里开始最近项目刚…

not null primary key什么意思_explain都不会用,你还好意思说精通Mysql查询优化?

Explain简介Explain关键字是Mysql中sql优化的常用「关键字」&#xff0c;通常都会使用Explain来「查看sql的执行计划&#xff0c;而不用执行sql」&#xff0c;从而快速的找出sql的问题所在。在讲解Explain之前首先创建需要的「用户表user、角色表role、以及用户角色关系表role_…

android 如何修改百度导航诱导界面,Android 百度导航SDK

1)AndroidManifest.xml增加权限,声明service和ak鉴权android:allowBackup"true"android:icon"mipmap/ic_launcher"android:label"string/app_name"android:roundIcon"mipmap/ic_launcher_round"android:supportsRtl"true"an…

飞桨模型保存_飞桨实战笔记:自编写模型如何在服务器和移动端部署

​作为深度学习小白一枚&#xff0c;从一开始摸索如何使用深度学习框架&#xff0c;怎么让脚本跑起来&#xff0c;到现在开始逐步读懂论文&#xff0c;看懂模型的网络结构&#xff0c;按照飞桨官方文档进行各种模型训练和部署&#xff0c;整个过程遇到了无数问题。非常感谢飞桨…

docker always_Ubuntu+Docker+STF环境搭建

Ubuntu提前先安装配置好 Ubuntu server 14.04.5参考资料&#xff1a;Ubuntu 16.04 Server 版安装过程图文详解Dcoker安装Ubuntu 14.04/16.04 (使用apt-get进行安装)安装最新版本# step 1: 安装必要的一些系统工具安装指定版本# 安装指定版本的Docker-CE:安装校验rootubuntu:/ho…

android使用桢布局,Android 常用布局

Android的布局有&#xff1a;LinearLayout线性布局RelativeLayout 相对布局FrameLayout单桢布局TableLayout表格布局GridLayout网格布局Android4.0AbsoluteLayout绝对布局不常用(淘汰)LinearLayout线性布局&#xff1a;LinearLayout是一种线型的布局方式。LinearLay…

导入obj_3D模型obj文件格式详解

3d打印机导入三维模型通常都是obj格式&#xff0c;下面我们来看一下这种文件的格式。为我们进行产品开发提供技术基础储备。obj格式有4种数据&#xff0c;分别以一下字母开头&#xff1a;v顶点vt纹理坐标vn顶点法向量f 面一、顶点格式&#xff1a;v x y z意义&#xff1a;每个顶…

import java.io 包下载_Go 包管理机制深入分析

前言随着 Go 语言的深入使用&#xff0c;其依赖管理机制也一直是各位 Gopher 热衷于探讨的话题。Go 语言的源码依赖可通过 go get 命令来获取&#xff0c;但自动化程度不高&#xff0c;于是官方提供了 Dep 这样的自动化批量管理依赖的工具。虽然 Go 语言的依赖管理在很多方面还…

android进出动画有白屏,Android启动白屏原因及解决方案

如果大家碰到了这个问题&#xff0c;相信刚开始大家都是很委屈的吧&#xff0c;心里想&#xff1a;我什么都没干啊&#xff0c;就写了个setContentView就要背锅了&#xff1f;如果已经遇到了&#xff0c;不要方&#xff0c;这里给大家提供几个解决方案&#xff0c;我们APP在启动…