燒錄光碟 題解

2021-10-02 06:32:42 字數 1740 閱讀 9969

題目

在p jo

ipjoi

pjoi

2010夏令營快要結束的時候,很多營員提出來要把整個夏令營期間的資料燒錄成一張光碟給大家,以便大家回去後繼續學習。組委會覺得這個主意不錯!可是組委會一時沒有足夠的空光碟,沒法保證每個人都能拿到燒錄上資料的光碟,又來不及去買了,怎麼辦呢?

組委會把這個難題交給了dyj

dyjdy

j,dy

jdyj

dyj分析了一下所有營員的地域關係,發現有些營員是乙個城市的,其實他們只需要一張就可以了,因為乙個人呢拿到光碟以後,其他人可以拿著u

uu盤之類的東西去拷貝啊!

可是d yj

dyjdy

j調查後發現,有些營員並不是那麼合作,他們願意某一些人到他那兒拷貝資料,當然也可能不願意讓另外一些人到他那兒拷貝資料,這與我們pjo

ipjoi

pjoi

宣揚的團隊合作精神格格不入!

現在假設總共有n

nn個營員(2

<=n

nn<=200),每個營員的編號為1~n

nn。djy

djydj

y給每個人發了一張調查表,讓每個營員填上自己願意讓哪些人到他那兒拷貝資料。當然,如果a

aa願意把資料拷貝給b

bb,而b

bb又願意把資料拷貝給c

cc,則一旦a

aa獲得了資料,則b

bb、c

cc也會獲得資料。

現在請你編寫乙個程式,根據**上來的調查表,幫助dzy

dzydz

y計算出組委會至少要燒錄多少張光碟,才能保證所有營員回去後都能得到夏令營資料?

輸入先是乙個數n

nn,接下來n

nn行,分別表示各個營員願意把自己獲得的資料拷貝給其他哪些營員。即輸入資料的第n

nn+1行表示第i個營員願意把資料拷貝給那些營員編號,以乙個0結束。如果乙個營員不願意拷貝資料給任何人,則相應的行只有1個0,一行中的若干數之間用乙個空格隔開。

輸出乙個正整數,表示最少要燒錄的光碟數。

樣例input

52 4 3 0

4 5 000

1 0output

1解題思路

d fs

dfsdf

s遍歷一次,儲存出棧序列

倒序出棧序列,再dfs

dfsdf

s遍歷,有幾個起點就有多少個強連通分量

**

#include

#include

#include

using namespace std;

int n,x,t,ans;

int p[250],f[250],a[250]

[250]

;void dfs(int x)

void dfs2(int x)

int main()}

for(int i=1;i<=n;i++)

if(p[i]

==0) //找到入度為0

dfs(i)

; //bfs求出棧序列

memset(p,0,sizeof(p))

; //清空狀態陣列

for(int i=t;i>0;i--)

if(p[f[i]

]==0) //沒有走過

cout

}

linux 燒錄光碟

1.檢視 燒錄機名稱和最大寫入速度 cat proc sys dev cdrom infowodim prcap or cdrecord prcap 以上兩種方法任選其一 2.掛載光碟 如果不能自動掛載 ls l dev grep cdrom mount dev cdrom mnt 第一條命令結果的...

燒錄光碟 cdrom

description 在fjoi2010夏令營快要結束的時候,很多營員提出來要把整個夏令營期間的資料燒錄成一張光碟給大家,以便大家回去後繼續學習。組委會覺得這個主意不錯!可是組委會一時沒有足夠的空光碟,沒法保證每個人都能拿到燒錄上資料的光碟,怎麼辦呢?dyj分析了一下所有營員的地域關係,發現有些營...

Linux下燒錄光碟

在網上查了很多材料,最常用的有兩個 1 使用cdrecord燒錄。apt get install cdrecord 掃瞄驅動器 cdrecord scanbus 如果使用cdrecord版本較老檢測不出硬體,可以使用 cdrecord scanbus dev atapi cdrecord scanb...