Sicily 1034. Forest
题目地址:1034. Forest
思路:
网上很多说用深搜,很任性.......发现广搜也挺好用的,实验课打的(⊙o⊙)…orz........囧。
先找根结点,根据根结点广搜深度,广搜宽度,不过要开一个数组,同一层的累加宽度。别忘了要判断是否合法。
具体代码如下:
#include <iostream>
#include <cstring>
#include <queue>
using namespace std; bool path[][];
bool visited[];
bool Root[]; int main()
{
int n, m;
while (cin >> n >> m && n)
{
memset(path, false, sizeof(path));
memset(visited, false, sizeof(visited));
memset(Root, true, sizeof(Root)); bool flag = n > m ? true : false;
for (int i = ; i <= m; i++)
{
int node1, node2;
cin >> node1 >> node2;
if (node1 == node2) flag = false;
path[node1][node2] = true;
}
if (flag == false) {
cout << "INVALID\n";
continue;
} for (int i = ; i <= n; i++)
for (int j = ; j <= n; j++)
if (path[j][i])
Root[i] = false;
int maxwidth = ;
for (int i = ; i <= n; i++)
if (Root[i]) {
maxwidth++;
visited[i] = true;
}
queue<int> store;
int depth, maxdepth;
maxdepth = depth = ;
int width[] = {};
for (int i = ; i <= n; i++)
{
if (Root[i])
{
store.push(i);
depth = ;
while (!store.empty())
{
int size = store.size();
width[depth] += size;
while (size--)
{
for (int j = ; j <= n; j++)
if (path[store.front()][j])
{
if (!visited[j]) {
store.push(j);
visited[j] = true;
}
else
flag = false;
}
store.pop();
}
if (!store.empty())
depth++;
}
maxdepth = depth > maxdepth ? depth : maxdepth;
}
} for (int i = ; i <= n; i++)
if (!visited[i]) {
flag = false;
break;
} for (int i = ; i <= maxdepth; i++)
maxwidth = width[i] > maxwidth ? width[i] : maxwidth; flag == false ? cout << "INVALID" : cout << maxdepth << " " << maxwidth;
cout << endl;
} return ;
}
Sicily 1034. Forest的更多相关文章
- 基于netty轻量的高性能分布式RPC服务框架forest<下篇>
基于netty轻量的高性能分布式RPC服务框架forest<上篇> 文章已经简单介绍了forest的快速入门,本文旨在介绍forest用户指南. 基本介绍 Forest是一套基于java开 ...
- 基于netty轻量的高性能分布式RPC服务框架forest<上篇>
工作几年,用过不不少RPC框架,也算是读过一些RPC源码.之前也撸过几次RPC框架,但是不断的被自己否定,最近终于又撸了一个,希望能够不断迭代出自己喜欢的样子. 顺便也记录一下撸RPC的过程,一来作为 ...
- sicily 中缀表达式转后缀表达式
题目描述 将中缀表达式(infix expression)转换为后缀表达式(postfix expression).假设中缀表达式中的操作数均以单个英文字母表示,且其中只包含左括号'(',右括号‘)’ ...
- [Machine Learning & Algorithm] 随机森林(Random Forest)
1 什么是随机森林? 作为新兴起的.高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来 ...
- sicily 1934. 移动小球
Description 你有一些小球,从左到右依次编号为1,2,3,...,n. 你可以执行两种指令(1或者2).其中, 1 X Y表示把小球X移动到小球Y的左边, 2 X Y表示把小球X移动到小球Y ...
- STL : map函数的运用 --- hdu 4941 : Magical Forest
Magical Forest Time Limit: 24000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- 异常检测算法--Isolation Forest
南大周志华老师在2010年提出一个异常检测算法Isolation Forest,在工业界很实用,算法效果好,时间效率高,能有效处理高维数据和海量数据,这里对这个算法进行简要总结. iTree 提到森林 ...
- BZOJ 1034 泡泡堂BNB 贪心+简单博弈
同样是今天做bzoj时做到的,感觉能力范围之内的就做了,也是蛮简单的 1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MB Su ...
- hdu4941 Magical Forest (stl map)
2014多校7最水的题 Magical Forest Magical Forest Time Limit: 24000/12000 MS (Java/Others) Memory Limit ...
随机推荐
- UVAlive4287 Proving Equivalences(scc)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=10294 [思路] 强连通分量. 求出bcc后,缩点形成DAG,设D ...
- 1036 : Trie图 (AC自动机)
题目大意: 输入 n 个目标单词和一个文本串,判断文本串中是否存在某些目标单词. 思路 赤裸裸的 AC自动机. 代码: #include<iostream> #include<cst ...
- selenium webdriver python 操作浏览器
新建driver driver=webdriver.Firefox() driver=webdriver.Ie() driver=webdriver.Chrome() 打开一个链接 driver. ...
- RHEL6配置IP
修改配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0BOOTPROTO=noneBROADCAST=192.168.10.255HW ...
- Jenkins 初见
在网上貌似没有找到Jenkins的中文的太多的文档,有的都是关于Hudson的一些 零零散散的,所以自己边学习边实践总结了以下系列文章,希望有助于大家对于Jenkins的使用. 本系列文章是基于我3年 ...
- 如何给DropDownList控件设置样式(ASP.NET MVC)
前话: 应学校领导要求,要给后台管理系统添加一个搜索功能,提供可选择选项.我选择使用DropDownList去实现,熟悉.net控件的都知道,DropDownList的样子非常丑,不论是边框长宽还是里 ...
- Bloom Filter概念和原理
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合.Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某 ...
- Struts2框架具体解释
在Struts2的Model-View-Controller模式实现下面五个核心组件: 动作-Actions 拦截器-Interceptors 值栈/OGNL 结果/结果类型 视图技术 Struts ...
- nginx+keepalived实现nginx双主高可用的负载均衡
http://kling.blog.51cto.com/3320545/1253474 一.前言: 在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作.提供稳定可靠的服务,可以给用户带 ...
- 搭建HWI(HiveWebInterface)步骤总结
众所周知,Hive有三种使用方式:CLI.HWI浏览器.Thrift客户端.安装配置完Hive后无需进行额外操作即可使用CLI.但是HWI则需要单独搭建.本文主要记录我自己搭建HWI的过程. 说明:本 ...