天梯賽 排座位

2021-10-14 16:37:57 字數 1209 閱讀 1963

l2-010 排座位 (25分)

布置宴席最微妙的事情,就是給前來參宴的各位賓客安排座位。無論如何,總不能把兩個死對頭排到同一張宴會桌旁!這個艱鉅任務現在就交給你,對任何一對客人,請編寫程式告訴主人他們是否能被安排同席。

輸入格式:

輸入第一行給出3個正整數:n(≤100),即前來參宴的賓客總人數,則這些人從1到n編號;m為已知兩兩賓客之間的關係數;k為查詢的條數。隨後m行,每行給出一對賓客之間的關係,格式為:賓客1 賓客2 關係,其中關係為1表示是朋友,-1表示是死對頭。注意兩個人不可能既是朋友又是敵人。最後k行,每行給出一對需要查詢的賓客編號。

這裡假設朋友的朋友也是朋友。但敵人的敵人並不一定就是朋友,朋友的敵人也不一定是敵人。只有單純直接的敵對關係才是絕對不能同席的。

輸出格式:

對每個查詢輸出一行結果:如果兩位賓客之間是朋友,且沒有敵對關係,則輸出no problem;如果他們之間並不是朋友,但也不敵對,則輸出ok;如果他們之間有敵對,然而也有共同的朋友,則輸出ok but…;如果他們之間只有敵對關係,則輸出no way。

輸入樣例:

784

5612

7-11

3134

167-

1121

1412

3-13

4572

372

輸出樣例:

no problem

okok but...

no way

**:

#include

using

namespace std;

const

int maxn =

105;

int m, n, k;

int r[maxn]

[maxn]

;//關係矩陣 1 為朋友 -1 為敵人

int f[maxn]

;//並查集

intfind

(int v)

//找爹函式

}int

main()

}int tmp = k;

while

(tmp --

)return0;

}

思路:

主要是使用並查集,將朋友的朋友列為朋友,即所有的朋友都有乙個共同的爹。還有乙個陣列主要記錄他們之間是否為敵人。

CCCC 天梯賽 5 10 排座位

5 10 排座位 25分 布置宴席最微妙的事情,就是給前來參宴的各位賓客安排座位。無論如何,總不能把兩個死對頭排到同一張宴會桌旁!這個艱鉅任務現在就交給你,對任何一對客人,請編寫程式告訴主人他們是否能被安排同席。輸入第一行給出3個正整數 n le 100 即前來參宴的賓客總人數,則這些人從1到n編號...

CCCC團體天梯賽練習題 排座位

時間限制 150 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 布置宴席最微妙的事情,就是給前來參宴的各位賓客安排座位。無論如何,總不能把兩個死對頭排到同一張宴會桌旁!這個艱鉅任務現在就交給你,對任何一對客人,請編寫程式告訴主人他們是否能被安排同...

天梯賽L2 010 排座位(dfs)

problem description 布置宴席最微妙的事情,就是給前來參宴的各位賓客安排座位。無論如何,總不能把兩個死對頭排到同一張宴會桌旁!這個艱鉅任務現在就交給你,對任何一對客人,請編寫程式告訴主人他們是否能被安排同席。input 輸入第一行給出3個正整數 n 100 即前來參宴的賓客總人數,...