纯拓扑排序一搞poj2367】的更多相关文章

/* author: keyboarder time : 2016-05-18 12:21:26 */ #include<cstdio> #include<string.h> #include<iostream> #define N 110 int pre[N]; int ma[N][N]; bool vis[N]; int n; void tuopu() { int cnt=0; memset(vis,0,sizeof(vis)); for(int i=1;i<…
Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 348  Solved: 172[Submit][Status][Discuss] Description [故事背景]还记得去年JYY所研究的强连通分量的问题吗?去年的题目里,JYY研究了对于有向图的“加边”问题.对于图论有着强烈兴趣的JYY,今年又琢磨起了“删边”的问题.[问题描述]对于一个N个点(每个点从1到N编号),M条边的有向图,JYY发现,如果从图中删去一些边,那么原图的连通性会发生改变:…
Genealogical tree poj-2367 题目大意:给你一个n个点关系网,求任意一个满足这个关系网的序列,使得前者是后者的上级. 注释:1<=n<=100. 想法:刚刚学习toposort,什么是toposort? 就是每一个点的遍历或选取有先决条件,那么我们可以通过队列或者栈将控制当前点的点先遍历,这样弹栈或出队的序列,就是toposort的结果 我们先附上模板 int v[100100];//入度 bool map[110][110]={false};//是否存在控制与被控制…
题意:给你一颗树,问这颗树是否存在一个根,使得对于任意两点,如果它们到根的距离相同,那么它们的度必须相等. 思路1:树的重心乱搞 根据样例发现,树的重心可能是答案,所以我们可以先判断一下树的重心可不可以.如果不行,剩下的只可能是度为1点当根了.当然,我们不能枚举所有度为1的点,不然一个菊花图就超时了,我的做法是对于以重心为根的树搜索一遍,对于每个深度的度数为1的点只记录一个,然后枚举这些点,如果有就是有,否则没有.这样最坏的复杂度应该能到O(n * sqrt(n)),但是肯定跑不满.至于为什么这…
裸拓扑排序. 拓扑排序 用一个队列实现,先把入度为0的点放入队列.然后考虑不断在图中删除队列中的点,每次删除一个点会产生一些新的入度为0的点.把这些点插入队列. 注意:有向无环图 g[] : g[i]表示从点i连出去的边 L[] :拓扑排序的结构 code: #include <cstdio> #include <cstring> #include <queue> using namespace std; const int maxn = 100 + 5; vector…
很裸的拓扑排序~ //#include <bits/stdc++.h> #include<iostream> #include<string.h> #include<cstdio> #include<algorithm> using namespace std; typedef __int64 LL; const int N=1e2+10; int ma[N][N]; int pre[N]; int n; void tuopu() { int k…
http://poj.org/problem?id=2367 队列版 #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm> #include <string> #include <queu…
代码不知道上了多少补丁..终于过了 用类似拓扑排序的办法收缩整棵树得到x,然后找到x直连的最远的和最近的点 只有这三个点可能是根,依次判一下即可 另外题解的第一种方法时找直径,然后判两端点+重心+所有直连重心的叶子节点,感觉这样子复杂度爆炸啊..(如果是遍历所有叶子节点的话) #include<bits/stdc++.h> using namespace std; #define maxn 200005 ]; int head[maxn],tot; void init(){ memset(he…
今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划和实施过程,一个工程常被分为多个小的子工程,这些子工程被称为活动(Activity),在有向图中若以顶点表示活动,有向边表示活动之间的先后关系,这样的图简称为AOV网. 说的简单点,AOV网就是表示一个工程中某些子项的先后顺序.就拿工地搬砖来说吧,只有砖厂送来砖,工人才能搬.那么砖厂送砖就是搬砖的前…
摘要:最近是不适合写代码么?忘记初始化wa到死<_=_=_>.唔--最近在学习图论,从基础搞起,先搞了拓扑排序和欧拉(回)路. Part 0. 拓扑排序 ==挖坑== Part 1. 欧拉(回)路 先判连通性 欧拉回路: 有向图:每个顶点入度等于出度 无向图:每个顶点度数都为偶数 欧拉路: 有向图:每个顶点入度等于出度,或者,一个顶点入度比出度大一,一个顶点入度比出度小一(起点),其余顶点入度等于出度 无向图:每个顶点度数都为偶数,或者,只有两个顶点度数为奇数 HDU 3018 Ant Tri…