国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 喜德县| 托里县| 安新县| 河池市| 隆子县| 商洛市| 南陵县| 长兴县| 伊金霍洛旗| 济宁市| 巨鹿县| 麻城市| 鹤山市| 阳西县| 梧州市| 富阳市| 通河县| 曲阳县| 凌云县| 同江市| 华蓥市| 蒙自县| 蕲春县| 屯昌县| 兴安盟| 霍城县| 凤城市| 常山县| 梅州市| 偃师市| 正安县| 大足县| 桂东县| 肇东市| 孝义市| 吉木乃县| 澄迈县| 余干县| 开阳县| 务川| 东城区|