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 561 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 請輸入具有關係的兩個數以,分隔,回車輸入...