随笔分类 - 图论--拓扑排序
摘要:1022简单拓扑 不能直接dfs 可能有不联通的 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 vectored[110]; 9 int n,pa[110],de[110];10 void topo()11 {12 int i,j;13 for(i = 1; i <= n ; i++)14 {15 f...
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2647定义一个数组 来标记 保证每次循环找到的是同一层次的 它们加的数是相同的 用f来表示找到多少个入度为0的点 2 #include 3 struct node 4 { 5 int v,w,next; 6 }men[20001]; 7 int first[10001],de[10001],t,kk[10001]; 8 void init() 9 {10 t = 0;11 memset(first,-1,sizeof(first));12 }13 void add(int u,int...
阅读全文
摘要:http://poj.org/problem?id=10941A 这题下午想了好久 一直没调出来 由于是边输入边拓扑排序 入度改变之后下次再排会出错 晚上回来想到这一点 每次全复制一遍 只对入度进行操作 不进行改变这个题要 判断三种情况一种是有环在给出几种关系时出现矛盾二是在给出几种关系时 n个数已经排好了序三是输完还是无法排出一种序 这是属于拓扑排序不唯一的情况 也就是同时有多个结点出现的入度为0View Code 1 #include 2 #include 3 int f[100],g[50][50],kk[30],q[50]; 4 int topo(int n,int m) ...
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2094其实这题也不算是拓扑排序了 只需要判断最开始入度是否唯一就可以了 如果是0 肯定有环了 不是0 会有多个冠军也不对View Code 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int de[1001]; 7 int main() 8 { 9 int i,j,k,g,n,fg;10 string s1,s2;11 while(cin>>n)12 {13 if(!...
阅读全文

浙公网安备 33010602011771号