HDU 3342】的更多相关文章

HDU.3342 Legal or Not (拓扑排序 TopSort) 题意分析 裸的拓扑排序 根据是否成环来判断是否合法 详解请移步 算法学习 拓扑排序(TopSort) 代码总览 #include <iostream> #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <sstream> #include…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 Legal or Not Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7416    Accepted Submission(s): 3541 Problem Description ACM-DIY is a large QQ gr…
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3342 Legal or Not Description ACM-DIY is a large QQ group where many excellent acmers get together. It is so harmonious that just like a big family. Every day,many "holy cows" like HH, hh, AC, ZT, l…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 题目大意:n个点,m条有向边,让你判断是否有环. 解题思路:裸题,用dfs版的拓扑排序直接套用即可. 代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; int n,m; int vis[N]; bool G[N][N]; bool dfs(int u){ v…
题意: 给出n个人的师徒关系,如有 a是b的师傅,b是c的师傅,c是a的师傅,这样则不合法,输出NO,否则输出YES. 思路: 每段关系可以看成一条有向边,从师傅指向徒弟,那么徒弟的徒子徒孙都不可能再指向其师傅或自己,所以不可能构成环. 两种方法 : 1,用拓扑的方法,每次去掉一个入度为0的点,全部点都去掉就是合法的.(下面代码用此法) 2,用深搜,记录路径,当搜到走过的路径上的点就是有环.每个点都可能重复搜多次,因为这不是树. #include <bits/stdc++.h> using n…
一道极其水的拓扑排序……但是我还是要把它发出来,原因很简单,连错12次…… 题意也很裸,前面的废话不用看,直接看输入 输入n, m表示从0到n-1共n个人,有m组关系 截下来m组,每组输入a, b表示a指向b,或者b指向a也行. 输入n == 0时结束 如果可以拓扑排序,输出"YES",否则输出"NO".每组输出占一行. 给两种代码吧,一种用邻接矩阵,另一种我也不知道叫什么好…… 邻接矩阵—— #include <cstdio> #include <…
#include<stdio.h> #include<string.h> int degree[101],vis[101],map[101][101]; int main() { int n,m,a,b,i,j,temp,flag; while(~scanf("%d%d",&n,&m) && n) { memset(degree,0,sizeof(degree)); memset(vis,0,sizeof(vis)); memse…
Legal or Not Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 42   Accepted Submission(s) : 32 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description ACM-DIY is a large QQ gr…
好久没切题  先上水题! 拓扑排序! 代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; int g[105][105]; int d[105]; int N,M; bool Topsort() { for(int i=0;i<N;i++) { for(int j=0;j<N;j++) { if(g[i][j]==1) { d[j]++; } } } f…
<题目链接> 题目大意: 给你 0~n-1 这n个点,然后给出m个关系 ,u,v代表u->v的单向边,问你这m个关系中是否产生冲突. 解题分析: 不难发现,题目就是叫我们判断图中是否存在环,存在环,则说明冲突.所以我们对图进行拓扑排序,如果该图中所有的点均能在拓扑排序中成为入度为0的点,则说明不含环(因为环中的点不可能入度为0). #include <cstdio> #include <cstring> #define rep(i,s,t) for(int i=s…