1034 forest

2024-08-30 04:08
文章标签 forest 1034

本文主要是介绍1034 forest,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大水题,WA到吐了,结果发现犯了一弱智错误,擦

1.定义dept[]数组,主要用bfs ,将子节点的dept值累加父节点的dept值,遍历一颗或者若干树。从根节点(bepointed[]值为false的点)出发遍历全棵树。

2.存储方式:邻接表存边 vector+queue  ,

#include <iostream>
#include<queue>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;int n,m,a,b;
const int N=102;
bool bepointed[N];
bool circle[N];
int dept[N];
bool flag;
vector<int>vec[N];bool cmp(const int&a,const int &b)
{return a>b;
}void bfs(int vertex)
{queue<int>que1;que1.push(vertex);while (!que1.empty()){int a=que1.front();circle[a]=true;que1.pop();for (int i=0;i<vec[a].size();i++){int j=vec[a][i];if(circle[j]==false){dept[j]=dept[a]+1;que1.push(j);}	}}	
}int main()
{while(cin>>n>>m&&n!=0){flag=0;memset(bepointed,false,sizeof(bepointed));memset(circle,false,sizeof(circle));memset(dept,0,sizeof(dept));fill(vec,vec+n+1,vector<int>());while (m--){cin>>a>>b;if(bepointed[b]==true)  	flag=1;   //terrible mistake i've madebepointed[b]=true;  vec[a].push_back(b);}if(flag){cout<<"INVALID"<<endl;continue;}int count=0;for (int i=1;i<=n;i++){if(bepointed[i]==false)bfs(i);elsecount++;}if(count==n){cout<<"INVALID"<<endl;continue;}int count2=0;for (int i=1;i<=n;i++)if(circle[i]==true)count2++;if(count2!=n) //value of count2 stands for the numbers of vertex that has been pushed into the queue.If it does not equal to n, loop exists{cout<<"INVALID"<<endl;continue;}if(flag) continue;int maxx=0;for (int i=1;i<=n;i++)maxx=max(maxx,dept[i]);int wid[102]={0};for (int i=1;i<=n;i++)wid[dept[i]]++;sort(wid,wid+102,cmp);cout<<maxx<<" "<<wid[0]<<endl;}return 0;
}


这篇关于1034 forest的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1119752

相关文章

孤立森林 Isolation Forest 论文翻译(上)

README 自己翻译的+参考有道,基本是手打的可能会有很多小问题。 括号里的斜体单词是我觉得没翻译出那种味道的或有点拿不准的或翻译出来比较奇怪的地方,尤其是profile、swamping和masking这三个词不知道怎样更准确。 欢迎指正和讨论,需要Word版可以留言。 孤立森林 摘要         大多数现有的基于模型的异常检测算法构建了一个正常实例的特征轮廓(profil

Deep Forest,非神经网络的深度模型

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld。  深度学习最大的贡献,个人认为就是表征学习(representation learning),通过端到端的训练,发现更好的features,而后面用于分类(或其他任务)的输出function,往往也只是普通的softmax(或者其他一些经典而又简单的方法)而已,所以,只要特征足够好,分类

hdu3987 Harry Potter and the Forbidden Forest 最小割割边最少

题意:给一个n个点构成的有向图,起点为0,终点为n-1。每条边有一个权值,删除一条边的代价为边权。问如何删除使得0和n-1不 联通且代价最小,在这种情况下至少要删除多少条边。 思路:首先保证代价最小,很容易想到是最小割,但是不知怎么保证割边最少= =看了大神博客。。恍然大悟。。模型真是见得 少。。我们设一个较大的值N(N>数据给的最大边数),将边权变成w*N+1,那么最后求得的最大流对N取

Random Forest GBDT XGBOOST LightGBM面试问题整理

一.知识点 二.特征重要性评估     基于树的集成算法有一个很好的特性,就是模型训练结束后可以输出模型所使用的特征的相对重要性,便于理解哪些因素是对预测有关键影响,有效筛选特征。 Random Forest 袋外数据错误率评估 由于RF采用bootstrapping有放回采样, 一个样本不被采样到的概率为 limm→∞(1−1m)m=1e≈0.368 lim m → ∞

hdu 4941 Magical Forest(hash映射)

题目链接:hdu 4941 Magical Forest 题目大意:给定N,M和K,表示在一个N*M的棋盘上有K个棋子,给出K个棋子的位置和值,然后是Q次操作,对应的是: 1 a b :交换a和b两行2 a b : 交换a和b两列3 a b :查询a b这个位置上棋子的值,没有棋子的话输出0 解题思路:一开始X[i]

HDU 4941 Magical Forest

题目链接~~> 做题感悟:这题开始看时感觉很难,后来发现行和列没关系,属于有想法的一类的题目。 解题思路:                  因为所给的数据范围很大,开数组根本开不下,但是一看水果的数量并不大,可以从这里下手。细心观察一下发现行和列是没有关系的,交换行的时候没必要考虑列的感受,反之亦然,这样用map 离散化一下,然后用双重map 标记一个水果的位置,交换的时候只交换映射的值就

机器学习之快速森林分位数回归(Fast Forest Quantile Regression)

快速森林分位数回归(Fast Forest Quantile Regression)是一种用于回归任务的机器学习方法,旨在预测目标变量的特定分位数值。与传统回归模型不同,分位数回归能够提供目标变量的不同分布信息,而不仅仅是均值预测。这在需要估计不确定性范围或分布特征的应用中非常有用。 1. 核心概念 回归树:用于回归任务的决策树,通过一系列分裂条件预测连续目标变量。随机森林:通过集成多棵回归树

【scikit-learn006】随机森林(Random Forest)ML模型实战及经验总结(更新中)

1.一直以来想写下基于scikit-learn训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下scikit-learn框架随机森林(Random Forest)相关知识体系 3.欢迎批评指正,欢迎互三,跪谢一键三连! 3.欢迎批评指正,欢迎互三,跪谢一键三连! 3.欢迎批评指正,欢迎互三,跪谢一

Isolation Forest | 隔离森林论文阅读

Note of Isolation Forest 论文:https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf 一、介绍 作者认为,异常数据存在两个显著的特性: 数量少,甚至是极少与正常数据有显著的属性值差异 简单来说,异常是少且非常不同的。 因此,作者要做的就是找出这些异常点,而不是为正常数据建模(传统方法

家园 wiki 1034

网络流+拆点。 假设有n个空间站,每个站每过一秒,就会在分出来一个点,表示这一秒的空间站。假如有三个空间站a,b,c。第0秒整个图就是由超级源点,地球,空间站a,b,c,汇点。第一秒的时候多了a1,b1,c1三个点。由于空间站容量无限大,因此a->a1的边应该是容量为无限大,同理b到b1,c到c1也是。如果有飞机第零秒从a飞到b,则a到b1连一条边,容量为该飞机的容量。以上就是建图方法。 我的