티스토리 뷰
11378번: 열혈강호 4
첫째 줄에 직원의 수 N과 일의 개수 M, 지난달에 받은 벌점의 합 K가 주어진다. (1 ≤ N, M ≤ 1,000, 1 ≤ K ≤ N) 둘째 줄부터 N개의 줄의 i번째 줄에는 i번 직원이 할 수 있는 일의 개수와 할 수 있는
www.acmicpc.net
백준 소스코드 [C++] 11378 열혈강호 4
#include <iostream>
#include <algorithm>
#include <queue>
#include <string.h>
#include <limits.h>
#include <vector>
#include <math.h>
#include <stack>
#include <bitset>
#include <string>
#include <set>
#define all(v) v.begin(), v.end()
#define pii pair<int,int>
#define make_unique(v) v.erase(unique(v.begin(), v.end()), v.end())
typedef long long ll;
using namespace std;
int n, m, u, k, num, cnt = 0;
vector<int> path[1001];
vector<bool> chk;
vector<int>parent;
bool dfs(int left) {
if (chk[left]) return false;
chk[left] = true;
for (auto &right:path[left]) {
if (parent[right] == 0 || dfs(parent[right])) {
parent[right] = left;
return true;
}
}
return false;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m >> k;
chk.resize(n + 1, false);
parent.resize(m + 1, 0);
for (int i = 1;i <= n;i++) {
cin >> num;
for (int j = 0;j < num;j++) {
cin >> u;
path[i].push_back(u);
}
}
for (int i = 1;i <= n;i++) {
chk = vector<bool>(n + 1, false);
if (dfs(i)) cnt++;
}
while (true) {
bool update = false;
for (int i = 1;i <= n && 0 < k;i++) {
chk = vector<bool>(n + 1, false);
while (dfs(i)) {
cnt++;
update = true;
k--;
}
}
if (update == false) break;
}
cout << cnt;
return 0;
}
'백준' 카테고리의 다른 글
백준 소스코드 [C++] 14503 로봇 청소기 (0) | 2021.02.01 |
---|---|
백준 소스코드 [C++] 1389 케빈 베이컨의 6단계 법칙 (0) | 2021.02.01 |
백준 소스코드 [C++] 11377 열혈강호 3 (0) | 2021.01.16 |
백준 소스코드 [C++] 11376 열혈강호 2 (0) | 2021.01.16 |
백준 소스코드 [C++] 12738 가장 긴 증가하는 부분 수열 3 (0) | 2021.01.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- CompositionalLayout
- 부스트캠프 6기
- WWDC16
- HIG
- 최대 매칭
- 벨만포드 시간복잡도
- 최단경로 문제
- MeTal
- 컴퓨터 추상화
- WWDC17
- 최단경로문제
- 네트워크 플로우
- 다익스트라 시간복잡도
- 에드몬드 카프 알고리즘
- WWDC21
- test coverage
- 네트워크 유량
- 벨만포드 알고리즘
- Testable
- 강한 순환 참조
- CPU와 Memory
- State Restoration
- 포드 풀커슨 알고리즘
- observeOn
- mach-o
- 코딩대회
- WWDC19
- IOS
- rxswift
- 최단경로 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함