題意:就是求a和b的並集,然後就是輸出n行。每次輸出一下。
思路:那麼我們用陣列模擬鍊錶最簡單方法來做的話,複雜度是o(n^n)。
我這裡是得開乙個c陣列來存兩個集合的並集。也可以不開,用乙個變數表示就是沒有並集之前a集合裡面的元素個數即可。
#include
#define maxn 10010
using
namespace std;
int a[maxn]
;int b[maxn]
;int c[maxn]
;int
main()
if(num == m)
for(
int i=
0;i) cout<
<<
" ";
cout<<
"\n";}
cout<<
"\n";}
return0;
}
那麼我們如何用線性表來做呢?其實原理都一樣。但是我們學習的過程中可能很害怕指標以及表。
在acm競賽中,我也幾乎沒用過,都是用陣列模擬使用,這樣出錯的可能性會大大降低,但是如此長期導致越來越害怕使用各種表以及指標。
但其實並不難理解,我們要明白引數是如何傳遞就可以很好的解決這一問題了。
線性表解法如下:
#include
using
namespace std;
typedef
struct listlist;
//定義線性表結構體
void
write
(list l)
cout<<
"\n";}
void
union
(list &a,list &b)}if
(!flag)
write
(a);}}
intmain()
l1.length = m;
cin>>n;
for(
int j=
0;j) l2.length = n;
write
(l1)
;write
(l2)
;union
(l1,l2)
; cout<<
"\n";}
return0;
}
Pta題目集 7 36 集合相似度 (25 分)
7 36 集合相似度 25 分 給定兩個整數集合,它們的相似度定義為 n c n t 100 其中n c 是兩個集合都有的不相等整數的個數,n t 是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合...
python3集合 Python3 集合
集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者 set 函式建立集合,注意 建立乙個空集合必須用 set 而不是 因為 是用來建立乙個空字典。建立格式 parame 或者set value 這裡演示的是去重功能 orange in basket 快速判斷元素是否在集合內 true c...
python3集合 Python3 集合
python3 集合 集合 set 是乙個無序的不重複元素序列。可以使用大括號或者set 函式建立集合,注意 建立乙個空集合必須用set 而不是,因為是用來建立乙個空字典。集合內建方法 add 為集合新增元素 例項 fruits.add orange print fruits 輸出結果為 clear...