电话圈(floyd)

题意:

如果两个人相互打电话,则说他们在同一个电话圈里。例如,a打给b,b打给c,c打给d,d打给a,则这4个人在同一个圈里;如果e打给f但f不打给e,则不能推出e和f在同一个电话圈里,输出所有电话圈。

//floyd求传递闭包,dfs求出电话圈;

//还有循环一定从0开始啊,标记人也要 第0个,第1个,第2个。。。。。因为动态数组你一压进去就是从0开始

//所以你之前做才一直错啊  从0开始

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<cstring>
 5 #include<vector>
 6 #include<map>
 7 using namespace std;
 8 string s1,s2;//姓名 
 9 int n,m;
10 vector<string>name;//动态数组名字 
11 map<string,int>ID;//把人给编号 
12 int vis[30];//是否访问 
13 int d[30][30];//是否能通电话 
14 void dfs(int k)//深搜求电话圈 
15 {
16     vis[k]=1;
17     for(int i=0;i<n;i++)
18     {
19         if(!vis[i]&&d[i][k]&&d[k][i])
20         {
21             cout<<name[i]<<" ";
22             dfs(i);
23         }
24     }
25 }
26 int main()
27 {
28     while(scanf("%d%d",&n,&m)!=EOF)//n个人m个电话圈 
29     {
30         memset(vis,0,sizeof(vis));
31         memset(d,0,sizeof(d));
32         int cnt=0;
33         name.clear();
34         ID.clear();
35         for(int i=1;i<=m;i++)
36         {
37             cin>>s1>>s2;
38             if(!ID.count(s1))//这个人没有 
39             {
40                 ID[s1]=cnt++;//给这个人编号 
41                 name.push_back(s1);//进入队列 
42             }
43             if(!ID.count(s2))
44             {
45                 ID[s2]=cnt++;
46                 name.push_back(s2);
47             }
48             int x=ID[s1];
49             int y=ID[s2];
50             d[x][y]=1;//这两个人可以互相通电话 
51         }
52         for(int k=0;k<n;k++)//floyd 
53         for(int i=0;i<n;i++)
54         for(int j=0;j<n;j++)
55         d[i][j]=d[i][j]||d[i][k]&&d[k][j];
56         for(int i=0;i<n;i++)//求电话圈 
57         {
58             if(!vis[i])
59             {
60                 cout<<name[i]<<" ";
61                 dfs(i);
62                 printf("\n");//在这里有个回车。。不然没形成一个电话圈时,它会输出一个电话圈 
63             }
64          }
65     }
66 }
View Code

//学到的floyd判圈,dfs求圈

转载于:https://www.cnblogs.com/zzyh/p/6680825.html

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

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

相关文章

计算机二级网址打不开,大神为你解决win7系统打不开二级网页链接的操作教程...

许多win7系统电脑的时候,常常会遇到win7系统打不开二级网页链接的情况&#xff0c;比如近日有用户到本站反映说win7系统打不开二级网页链接的问题&#xff0c;但是却不知道要怎么解决win7系统打不开二级网页链接&#xff0c;我们依照首先我们打开IE浏览器&#xff0c;然后点击上…

3步实现Jetty和Eclipse集成

本教程将引导您逐步了解如何集成Jetty和Eclipse&#xff0c;以及如何在Eclipse中的Jetty服务器上运行Web应用程序。 脚步&#xff1a; 安装Jetty Eclipse插件 建立网路应用程式 运行网络应用 1 –安装Jetty Eclipse插件 将服务器添加到“服务器”视图时&#xff0c;将不会…

使用Akka处理1000万条消息

Akka演员承诺并发。 有什么更好的模拟方式&#xff0c;看看使用商品硬件和软件处理1000万条消息需要花费多少时间&#xff0c;而无需进行任何低级调整。我用Java编写了整个1000万条消息的处理过程&#xff0c;整个结果令我惊讶。 当我在具有Intel i5 – 4核&#xff0c;4 Gb RA…

dart服务器开发性能,DartVM服务器开发(第四天)--代码优化

优化请求上一篇文章中&#xff0c;我们通过依赖第三方http_server这个包实现将html页面返回给浏览器&#xff0c;但是一般的服务器都包含请求html&#xff0c;json格式的传递&#xff0c;这样就有可能造成了混乱&#xff0c;下面我们使用http_server这个包进行优化吧&#xff0…

【Android】SVG和VectorDrawable——相关格式转换

SVG是矢量图&#xff0c;刚接触尚不能仔细介绍&#xff0c;但只需记得一点&#xff1a;放大不失真&#xff0c;存储也方便。 因为多数户型图使用SVG格式&#xff0c;Android要用的话必须通过相关转换工具&#xff0c;将原SVG格式文件&#xff0c;转换为XML后缀的VectorDrawable…

css中基线指的是哪一条线,如何设置基线网络_CSS, Vertical Rhythm 教程_W3cplus

首先&#xff0c;当谈到排版&#xff0c;我们先要了解基线是什么&#xff1f;维基百科是这样定义)的&#xff1a;在排版和书法中&#xff0c;基线是以字终sit底线为基础&#xff0c;并且向两边延伸的直线。好极了&#xff0c;但我为什么要忽视他呢&#xff1f;好希望你充满激情…

使用JGroups进行ElasticMQ消息复制

ElasticMQ是一台消息服务器&#xff0c;具有Scala&#xff0c;Java和与Amazon SQS兼容的接口。 它通过跨服务器群集复制消息来支持有保证的消息传递&#xff0c;并通过日志记录实现消息持久性。 消息复制是ElasticMQ的核心功能之一。 但是&#xff0c;如果您看一下代码&#xf…

Spring Social入门

像我一样&#xff0c;无论是添加简单的Facebook“赞”按钮&#xff0c;一大堆“共享”按钮还是显示时间轴信息&#xff0c;您都不会注意到当前对应用程序“社交化”的热衷。 每个人都在做这件事&#xff0c;包括Spring的家伙&#xff0c;事实上&#xff0c;他们提供了一个称为S…

apache ajax 跨域访问,Apache 实现AJAX跨域请求

当使用ajax跨域请求时&#xff0c;浏览器报错&#xff1a;XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin.肯定是跨域的问题&#xff0c;如果用jsonp或者pro更多&#xff1a;当使用ajax跨域请求时&#xff0c;浏览器报错&#xff1a;XmlHtt…

EhCache复制:RMI与JGroups

最近&#xff0c;我正在研究一种需要复制缓存的产品。 缓存提供程序已经确定-EhCache&#xff0c;剩下的就是有关传输的问题。 哪一个是最佳选择&#xff1f; 这里的最佳选择是指性能更好的选择。 仅在两个可用传输之间进行了性能评估-JGroups和RMI&#xff0c;对其他传输不予考…

服务器wifi无线放大器,一回家WiFi信号太弱?教你用两毛钱制作信号放大器

原标题&#xff1a;一回家WiFi信号太弱&#xff1f;教你用两毛钱制作信号放大器现在家家户户都有无线路由器&#xff0c;但是大部分人都还是早期的单天线产品&#xff0c;信号覆盖范围比较小&#xff0c;特别是穿墙性能不行。人在客厅WiFi信号还满格&#xff0c;一到卧室就瞬间…

iOS开发 之 可穿戴设备 蓝牙4.0 BLE 开发

1 前言 当前有越来越多的可穿戴设备使用了蓝牙4.0 BLE&#xff08;Bluetooth Low Energy)。对于iOS开发而言&#xff0c;Apple之前专门推出CoreBluetooth的Framework来支持BLE的开发。对于硬件开发有了解的朋友应该知道&#xff0c;在之前使用低版本的蓝牙的设备&#xff0c;要…

git服务器维护 备份,gitlab服务运维,备份与恢复 - 橙子柠檬's Blog

gitlab服务运维工作Gitlab-ctl 使用gitlab-ctl start #启动服务gitlab-ctl stop #停止服务gitlab-ctl restart #重启服务检查服务的日志信息gitlab-ctl tail redis #检查redis的日志gitlab-ctl tail postgresql #…

使用TestNG的弹簧测试支持

TestNG是一个测试框架&#xff0c;旨在涵盖所有类别的测试&#xff1a;单元&#xff0c;功能&#xff0c;端到端&#xff0c;集成等。 它包括许多功能&#xff0c;例如灵活的测试配置&#xff0c;对数据驱动测试的支持&#xff08;使用DataProvider&#xff09;&#xff0c;强大…

Entity Framework - 理清关系 - 基于外键关联的单向一对一关系

注&#xff1a;本文针对的是 Entity Framework Code First 场景。 之前写过三篇文章试图理清Entity Framework中的一对一关系&#xff08;单相思&#xff08;单向一对一&#xff09;, 两情相悦&#xff08;双向一对一&#xff09;, 两情相悦-续&#xff09;&#xff0c;但当时理…

微信社交小程序服务器,Day12-微信小程序实战-交友小程序-搭建服务器与上传文件到后端...

要搞一个小型的cms内容发布系统因为小程序上线之后&#xff0c;直接对数据库进行操作的话&#xff0c;慧出问题的&#xff0c;所以一般都会做一个管理系统&#xff0c;让工作人员通过这个管理系统来对这个数据库进行增删改查微信小程序其实给我们提供了这样的能力了(也就是可以…

文件共享服务器imac,iMac怎么在网络上共享设备windows文件夹和服务 | MOS86

本章通过向您展示如何在网络和Mac和Windows计算机之间共享文件&#xff0c;文件夹和设备&#xff0c;帮助您充分利用您的iMac网络连接。→使用Macs共享文件和文件夹使用AirDrop和文件共享→与Windows 7计算机共享文件→设置共享权限→使用共享表快速在线共享文件→共享和访问网…

【转】 简单理解Socket

题外话 前几天和朋友聊天&#xff0c;朋友问我怎么最近不写博客了&#xff0c;一个是因为最近在忙着公司使用的一些控件的开发&#xff0c;浏览器兼容性搞死人&#xff1b;但主要是因为这段时间一直在看html5的东西&#xff0c;看到web socket时觉得很有意思&#xff0c;动手写…

业务活动监视器(BAM)2.0带来的革命

生产兼具精益和企业价值的中间件是一项艰巨的工作。 它要么不存在&#xff0c;要么需要创新的思维&#xff08;很多&#xff09;&#xff0c;并且需要在实现中反复进行。 业务风险很大&#xff0c;但是如果您做对了&#xff0c;它就会使您领先于其他任何公司。 这就是为什么我们…

oracle销售服务器吗,oracle 服务器 版本

oracle 服务器 版本 内容精选换一换Atlas 800 训练服务器(型号 9010)安装上架、服务器基础参数配置、安装操作系统等操作请参见《Atlas 800 训练服务器 用户指南 (型号9010)》。Atlas 800 训练服务器(型号 9010)适配操作系统如表1所示。请参考表2下载驱动和固件包。Atlas 800 训…