Sicily 1034. Forest

题目地址:1034. Forest

思路:

     网上很多说用深搜,很任性.......发现广搜也挺好用的,实验课打的(⊙o⊙)…orz........囧。

     先找根结点,根据根结点广搜深度,广搜宽度,不过要开一个数组,同一层的累加宽度。别忘了要判断是否合法。

     具体代码如下:

 1 #include <iostream>
 2 #include <cstring>
 3 #include <queue>
 4 using namespace std;
 5 
 6 bool path[101][101];
 7 bool visited[101];
 8 bool Root[101];
 9 
10 int main()
11 {
12     int n, m;
13     while (cin >> n >> m && n)
14     {
15         memset(path, false, sizeof(path));
16         memset(visited, false, sizeof(visited));
17         memset(Root, true, sizeof(Root));
18 
19         bool flag = n > m ? true : false;
20         for (int i = 1; i <= m; i++)
21         {
22             int node1, node2;
23             cin >> node1 >> node2;
24             if (node1 == node2) flag = false;
25             path[node1][node2] = true;
26         }
27         if (flag == false) {
28             cout << "INVALID\n";
29             continue;
30         }
31         
32         for (int i = 1; i <= n; i++)
33             for (int j = 1; j <= n; j++)
34                 if (path[j][i])
35                     Root[i] = false;
36         int maxwidth = 0;
37         for (int i = 1; i <= n; i++)
38             if (Root[i]) {
39                 maxwidth++;
40                 visited[i] = true;
41             }
42         queue<int> store;
43         int depth, maxdepth;
44         maxdepth = depth = 0;
45         int width[101] = {0};
46         for (int i = 1; i <= n; i++)
47         {
48             if (Root[i])
49             {
50                 store.push(i);
51                 depth = 0;
52                 while (!store.empty())
53                 {
54                     int size = store.size();
55                     width[depth] += size;
56                     while (size--)
57                     {
58                         for (int j = 1; j <= n; j++)
59                             if (path[store.front()][j])
60                             {
61                                 if (!visited[j]) {
62                                     store.push(j);
63                                     visited[j] = true;
64                                 }
65                                 else
66                                     flag = false;
67                             }
68                         store.pop();
69                     }
70                     if (!store.empty())
71                         depth++;
72                 }
73                 maxdepth = depth > maxdepth ? depth : maxdepth;
74             }
75         }
76         
77         for (int i = 1; i <= n; i++)
78             if (!visited[i]) {
79                 flag = false;
80                 break;
81             }
82         
83         for (int i = 0; i <= maxdepth; i++)
84             maxwidth = width[i] > maxwidth ? width[i] : maxwidth;
85         
86         flag == false ? cout << "INVALID" : cout << maxdepth << " " << maxwidth;
87         cout << endl;
88     }
89 
90     return 0;
91 }

 

转载于:https://www.cnblogs.com/winray/p/4157235.html

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

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

相关文章

Python中文全攻略

From: http://www.sqlite.com.cn/MySqlite/11/395.Html 1. 在Python中使用中文 在Python中有两种默认的字符串&#xff1a;str和unicode。在Python中一定要注意区分“Unicode字符串”和“unicode对象”的区别。后面所有的“unicode字符串”指的都是python里的“unicode…

HTTP 304状态码的详细讲解

HTTP 304状态码的详细讲解 304状态码或许不应该认为是一种错误&#xff0c;而是对客户端有缓存情况下服务端的一种响应。 整个请求响应过程如下&#xff1a; 客户端在请求一个文件的时候&#xff0c;发现自己缓存的文件有 Last Modified &#xff0c;那么在请求中会包含 If …

[MySQL FAQ]系列 -- 数据不算大,备份却非常慢

作/译者&#xff1a;叶金荣&#xff08;Email: &#xff09;&#xff0c;来源&#xff1a;http://imysql.cn&#xff0c;转载请注明作/译者和出处&#xff0c;并且不能用于商业用途&#xff0c;违者必究。问题环境硬件&#xff1a;DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram软件…

视频编解码:第一章 编解码基础

1. 视频编码概念 视频编码方式就是指通过特定的压缩技术&#xff0c;将某个视频格式的文件转换成另一种视频格式文件的方式。 2. 为什么要进行视频压缩&#xff1f; 数据太大&#xff1a;未经压缩的数字视频数据量巨大存储困难&#xff1a;一张DVD只能存储几秒钟的未压缩数字视…

[python]删除列表中相同的元素

去除列表中重复的元素&#xff0c;非常简单&#xff0c;直接上代码&#xff1a; a [11, 21, 3, 4, 3, 2, 5] b list(set(a)) print(a) print(b)运行结果&#xff1a; E:\Program\Python>d.py [11, 21, 3, 4, 3, 2, 5] [2, 3, 4, 5, 11, 21]看到了吗&#xff0c;结果中确实…

js-cookie使用方法

该插件解决了原生js操作cookie的麻烦 js-cookie使用方法 js-cookie用来处理cookie相关的插件&#xff0c;非常简单好用&#xff0c;下面简单记录一下&#xff1a;1、项目中引用&#xff1a; npm install --save js-cookie2、js-cookie的使用&#xff1a; 安装好js-cookie插…

WindowsXP命令行修改服务启动选项

1、修改服务启动类型&#xff1b;使用命令sc&#xff0c;命令使用方法见下例&#xff1a;sc config messenger displayname "messenger" start auto说明&#xff1a;messenger:所要操作的服务名称displayname "messenger":所要操作的服务名称显示出来的名称…

Python 文件读和写

转载于:https://www.cnblogs.com/nzyjlr/p/4157582.html

element-ui 设置菜单栏展开

element-ui 侧边栏默认要全部展开怎么做&#xff1f; element-ui文档中是这么写的 default-openeds 当前打开的sub-menu的key数组 给标签加上这个属性 <el-menu class"el-menu-vertical" open"handleOpen" close"handleClose" theme"…

删除列表中满足一定条件的元素

从列表中删除满足一定条件的元素。 如&#xff1a;删除一个列表中长度为0的元素&#xff0c;或者删除列表中同时是2和3的倍数的元素。 做过高级语言编程的人想当然的会认为“这很简单”&#xff0c;可以如下面的方式来实现&#xff1a; for i in listObj:if(...):listObj.rem…

简单JS实现走马灯效果的文字(无需jQuery)

效果类似&#xff1a;(抱歉&#xff0c;图片是静态的) 写一段html&#xff0c;需要走马灯上下跳动的内容&#xff0c;但每次只显示一行&#xff1a;<hr size"0" align"center" style"border-top: 1px solid #F5F5F5;"/> <div id"m…

Android Service 生命周期

Android Service的生命周期 Managing the Lifecycle of a Service service的生命周期&#xff0c;从它被创建开始&#xff0c;到它被销毁为止&#xff0c;可以有两条不同的路径&#xff1a; A started service 被开启的service通过其他组件调用 startService()被创建。 这种ser…

Python正则表达式如何进行字符串替换

先来段网上的知识&#xff1a;http://developer.51cto.com/art/201003/188824.htm Python正则表达式在使用中会经常应用到字符串替换的代码。有很多人都不知道如何解决这个问题&#xff0c;下面的代码就告诉你其实这个问题无比的简单&#xff0c;希望你有所收获。 1.替换所有匹…

[Violation] Added non-passive event listener to a scroll-blocking ‘mousewheel‘ event.

在基于 Element-ui 写项目的时候&#xff0c;Chrome 提醒&#xff1a; [Violation] Added non-passive event listener to a scroll-blocking ‘mousewheel’ event. Consider marking event handler as ‘passive’ to make the page more responsive. 翻译过来如下&#xf…

ubuntu下集群设置静态ip

hadoop集群时&#xff0c;需要固定集群内计算机相互通信之间的ip地址&#xff0c;但是每次进行网络连接后&#xff0c;ip地址都是变换的&#xff0c;我们希望设置一个用于集群内通信的静态ip&#xff0c;即使重启电脑也不会变化&#xff0c;同样希望能够正常的访问互联网。 sud…

新书出版:《Android深度探索(卷1):HAL与驱动开发》

《Android深度探索&#xff08;卷1&#xff09;&#xff1a;HAL与驱动开发》【1】亚马逊【2】当当网【3】京东商城【4】互动网【5】淘宝网【6】豆瓣网 《 Android深度探索&#xff08;卷1&#xff09;&#xff1a;HAL与驱动开发》分为4篇&#xff0c;分别从搭建开发环境&#x…