DFS 週末出遊 校OJ2348

2021-08-20 02:04:17 字數 967 閱讀 5251

週末天氣真好,大家組織一起出去玩(玩你妹,不好好學習),可是,有些人要知道(有好朋友了不起呀)自己最要好的朋友接受邀請了,他才會去,只有邀請到他們最好的朋友才會去(賤人就是矯情)。可是作為負責人的你(冤大頭)必須判斷是否能夠辦好這次聚會(氣死爸爸拉,哼),邀請到所有的人。

輸入包含多組測試資料,每組測試資料第一行輸入n(0

對於第 i 個人來說,a[i] 是他的好朋友, 

如果 a[i] 參加了,那麼 i 也會參加。

如果a[i]=i,表示編號為 i 的同學一定會去(注孤)。

如果能邀請到所有輸出yes,反之no。

4

1 2 3 3

yes

對樣例資料的解釋:第一行輸入了4,表示有4個人,編號分別為1,2,3,4。

第二行,

a[1]=1表示編號為1的同學一定會去;

a[2]=2表示編號為2的同學一定會去;

a[3]=3表示編號為3的同學一定會去;

a[4]=3表示如果編號為3的同學去了,那麼編號為4的同學也會去。

因為已經確定3一定去,所以4也去了。

因此所有人都去了,輸出yes。

#include using namespace std;

const int mn=1010;

bool dp[mn];

int to[mn],fr[mn],nx[mn];

void dfs(int x)

}int main()

//a[i]為起點 i為終點

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

bool flag=1;

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

if(flag)

printf("yes\n");

else

printf("no\n");

} return 0;

}

南陽理工oj 2括號配對問題

題目描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入描述 第一行輸入乙個數n 0 樣例輸出 nono yes問題解決的乙個關鍵突破口在於每乙個右括號是和它最近的左括號配對的,知道這個原理,我們就有思路了。我們這裡利用棧來解決這個問題,遇到左括號進棧,遇到右括號和棧頂元素進行比較,如果相同則...

小公尺OJ 2 找出單獨出現的數字

解法一 map1.45 ms include include include include include include include include include include include include include include using namespace std int...

小公尺OJ 2(找出單獨出現的數字)

找出單獨出現的數字 序號 2 難度 有挑戰 時間限制 1000ms 記憶體限制 10m描述 給出n個數字。其中僅有乙個數字出現過一次,其他數字均出現過兩次,找出這個出現且只出現過一次的數字。要求時間和空間複雜度最小。輸入輸入多個數字,每個數字以空格分開。數字數量 n 20,輸入數字的最大值小於 25...