Mô tả bài toán
Có m đèn, ban đầu tắt. n công tắc, công tắc i bật tập đèn A[i]. Kiểm tra có thể bật được tất cả m đèn không (bằng cách bật một số công tắc).
Ví dụ
A=[[1,4],[1,3,1],[2]], m=4 → Bật tất cả công tắc → đèn 1,2,3,4 đều bật → True.
Thuật toán
Gộp tất cả đèn có thể bật từ các công tắc vào một set. Nếu size(set) == m thì true.
Code C++
#include <bits/stdc++.h>
using namespace std;
bool solve(vector> A, int m) {
set s;
for (auto &row : A)
for (int x : row)
s.insert(x);
return s.size() == m;
}
int main() {
vector> A = {{1,4},{1,3,1},{2}};
int m = 4;
cout << solve(A, m) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: {{1,4},{1,3,1},{2}}, 4
Output: 1 (true)