資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
給出兩個整數集合a、b,求出他們的交集、並集以及b在a中的餘集。
輸入格式
第一行為乙個整數n,表示集合a中的元素個數。
第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。
第三行為乙個整數m,表示集合b中的元素個數。
第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。
集合中的所有元素均為int範圍內的整數,n、m<=1000。
輸出格式
第一行按從小到大的順序輸出a、b交集中的所有元素。
第二行按從小到大的順序輸出a、b並集中的所有元素。
第三行按從小到大的順序輸出b在a中的餘集中的所有元素。
樣例輸入
51 2 3 4 5
52 4 6 8 10
樣例輸出
2 41 2 3 4 5 6 8 10
1 3 5
樣例輸入
41 2 3 4
35 6 7
樣例輸出
1 2 3 4 5 6 7
1 2 3 4
思路:輸入a,b,並對其進行公升序,在依次求交集,並集,餘集,用函式操作更加容易理解。
****如下:**
/*問題:求兩個集合的交集,並集,和b在a中的餘集
*/#include #include int a[2001],b[2001],c[4002],d[2001],e[2001];
using namespace std;
int jiaoji(int n,int m)
} }return k;
}void bingji(int j)else }}
// 1 2 3 4 5 除去2 4 輸出 1 3 5
void yuji(int n,int k)
} elseelse
}if(flag)
} }}int main()
cin >> m;
for(i = 0;i < m;i++)
sort(a,a+n);
sort(b,b+m);
//求交集
//int max = n > m ? n : m;
int k = jiaoji(n,m);
printf("\n");
//求並集按公升序輸出
//兩個集合合併到乙個集合進行操作
j = 0;
for(i = 0;i < n;i++)
for(i = 0;i < m;i++)
bingji(j);
printf("\n"); //換行
yuji(n,k);
return 0;
}
演算法訓練 集合運算
問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數。第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。集合中的...
演算法訓練 集合運算
問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數。第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。集合中的...
演算法訓練 集合運算
演算法訓練 集合運算 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數...