離散題目17 求對稱閉包

2021-08-01 13:36:25 字數 1096 閱讀 4766

time limit: 1000ms

memory limit: 65536kb

submit

statistic

problem description

給出集合x和x上的關係r,求關係r在x上的對稱閉包s(r)。

例如:x= , r=

s(r)=

input

多組輸入,每組輸入第一行為集合x的元素;第二行為乙個整數n ( n > 0 ),代表x上的關係r中序偶的個數;接下來n行用來描述x上的關係r,每行兩個數字,表示關係r中的乙個序偶。細節參考示例輸入。

非空集合x的元素個數不大於500,每個元素的絕對值不大於2^32 - 1。

output

每組輸入對應一行輸出,為x上關係r的對稱閉包s(r),s(r)中的序偶根據序偶中的第乙個值公升序排列,如果第乙個值相同則根據第二個值公升序排列;具體輸出格式見樣例(注意:樣例每個逗號後有乙個空格)。

example input

1 2 3 4 5

61 1

2 13 3

2 33 2

4 5

example output

[(1, 1), (1, 2), (2, 1), (2, 3), (3, 2), (3, 2), (3, 3), (4, 5), (5, 4)]
think:此題借用了學長的思路,首行輸入的資料沒有用處,可以直接讀入,但是用字串超時了,,,每個序偶都用結構體儲存下來,再根據對稱性求解;
**:
#include using namespace std;

string dd;

struct node

q[10000];

int cmp(node a, node b)

int main()

}sort(q,q+n+flag,cmp);

cout<<"[";

for(int i = 0; i < n+flag; i++)

cout<<"]"

getline(cin,dd);

}return 0;

}

離散題目18 求傳遞閉包

time limit 1000ms memory limit 65536kb submit statistic problem description 給出乙個集合a和a上的關係r,求關係r的傳遞閉包。例如 a r t r input 多組輸入,輸入n m,集合a m代表關係的數量,n m不超過20...

離散題目16 求自反閉包

problem description 給出集合a,以及集合a上的關係r,求關係r的自反閉包。input 首先輸入t,表示有t組資料.每組資料第一行輸入n,表示a中有n個資料,接下來一行輸入n個數,4 n 100,0 ai 100 第二行輸入m,代表r中有m對關係 0 m 100 接下來m行每行輸入...

求對稱閉包以及傳遞閉包

include include define n 50 求對稱閉包以及傳遞閉包 intmain else break int r n n 關係矩陣 for int i 0 iprintf 請輸入關係的個數 n int k 0 scanf d k printf 請輸入具有關係的兩個數以,分隔,回車輸入...