国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

uva 10305 Ordering Tasks(拓?fù)渑判?

2019-11-08 02:24:08
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_PRoblem&problem=1246

題目:

John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task is only possible if other tasks have already been executed.

Input

The input will consist of several instances of the problem. Each instance begins with a line containing two integers,1 <= n <= 100andm.nis the number of tasks (numbered from1ton) andmis the number of direct precedence relations between tasks. After this, there will bemlines with two integersiandj, representing the fact that taskimust be executed before taskj. An instance withn = m = 0will finish the input.

Output

For each instance, print a line withnintegers representing the tasks in a possible order of execution.

Sample Input

5 4
1 2
2 3
1 3
1 5
0 0

Sample Output

1 4 2 5 3題目大意:約翰有n個(gè)任務(wù)要做, 不幸的是,這些任務(wù)并不是獨(dú)立的,執(zhí)行某個(gè)任務(wù)之前要先執(zhí)行完其他相關(guān)聯(lián)的任務(wù)。/
import java.util.Arrays;import java.util.Scanner;public class Main {	static int[][] G;//圖	static int[] c;//判斷每個(gè)節(jié)點(diǎn)的訪(fǎng)問(wèn)狀態(tài)	static int[] topo;//記錄拓?fù)渑判虻慕Y(jié)果	static int m,n,t;	public static void main(String[] args) {		Scanner scan = new Scanner(System.in);		while(true){			n = scan.nextInt();			m = scan.nextInt();			if((m+n)==0)				break;						G = new int[n+1][n+1];			c = new int[n+1];			topo = new int[n+1];			for(int i=1;i<=n;i++){				for(int j=1;j<=n;j++){					G[i][j] = 0;				}			}			Arrays.fill(c, 0);			for(int i=0;i<m;i++){				int a = scan.nextInt();				int b = scan.nextInt();				G[a][b] = 1;			}						if(topsort()){				String str = "";				for(int i=1;i<=n;i++){					str+=topo[i]+" ";				}				System.out.println(str.trim());			}else{				System.out.println("No");			}								}	}	//dfs	public static boolean dfs(int u){		c[u] = -1;		for(int v = 1;v<=n;v++) if(G[u][v]==1){			if(c[v]==-1)				return false;			else if(c[v]==0&&!dfs(v))				return false;		}		c[u] = 1;		topo[--t] = u;//		System.out.println(u);		return true;	}	public static boolean topsort(){		t = n+1;		for(int u=1;u<=n;u++){			if(c[u]==0&&!dfs(u)){				return false;			}		}		return true;	}}
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岳池县| 安岳县| 卢龙县| 汾阳市| 苏尼特右旗| 金阳县| 沂水县| 金溪县| 乐至县| 莱阳市| 上犹县| 乐昌市| 吐鲁番市| 四子王旗| 巴彦县| 西宁市| 石渠县| 新密市| 寿阳县| 彰化县| 建水县| 汝城县| 固安县| 伊川县| 正阳县| 会宁县| 启东市| 上高县| 绥中县| 襄城县| 托克托县| 米易县| 中山市| 安福县| 漳州市| 彭山县| 泾阳县| 康保县| 芜湖市| 郓城县| 曲沃县|