반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 오퍼레터
- boj #19237 #어른 상어
- 매개변수탐색
- 연결요소
- 성적평가
- 6987
- msSQL
- Docker
- Kafka
- 백준
- compose
- 이분탐색
- 소프티어
- 13908
- OFFSET
- softeer
- 퇴사통보
- @P0
- 처우산정
- 물채우기
- dfs
- BOJ
- BFS
- 파라메트릭
- 경력
- 백트래킹
- 처우협의
- incr
- 기술면접
- upper_bound
Archives
- Today
- Total
기술 블로그
8980번 택배 본문
728x90
반응형
https://www.acmicpc.net/problem/8980
어려웠다.
처음에는 단순 3개(f, t, c)에 대한 오름차순으로 sort를 하여, 구현하였으나 틀렸다.
알고보니,
도착지를 기준으로 오름차순하면 됐었다.
도착지가 같을 경우 출발지 기준으로 오름차순.
즉, 출발지 상관없이, 도착지가 무조건 1에 가까운 순서대로 sort를 한다.
하지만 나는 sort를 한 후에도 구현을 제대로 못 했었다.
핵심은 sort를 한 후에
vector v에 담겨져 있는 순서대로 해당 인덱스의 v에 대한 f ~ t - 1 까지
현재 싣고 있는 택배 개수의 최댓값을 구한다.
이유는 어차피 최댓값을 기준으로 실을 수 있는 택배가 결정되기 때문이다.
그 다음,
실을 수 있는 택배 개수( = (제한 택배 개수) - (위에서 구한 최댓값) )
와
해당 출발지(i.f)에서 요청한 택배 개수( = i.c = b)
중에서 최솟값을 구한다.
그리고 이 구한 최솟값을 answer(답)에 누적하여 더한다.
그리고 구한 최솟값을
t[i.t - 1]에 누적하여 더한다.
t[i.t]가 아닌 이유는 어차피 i.t지점에서 해당 택배들은 보내기 때문이다.
t[x] : x번 지점에 대한 트럭에 현재 싣고 있는 택배의 개수
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include <bits/stdc++.h> using namespace std; typedef struct info { int f, t, c; }info; int n, c, t[2002]; vector<info> v; // 또는 애초에, t를 맨 앞으로 하여, cmp 함수를 사용하지 않아도 된다. bool cmp(const info & a, const info & b) { if (a.t == b.t) return a.f < b.f; else return a.t < b.t; } int main(void) { int m, from, to, capacity, answer = 0, burden = 0; scanf("%d %d %d", &n, &c, &m); for (int i = 0; i < m; i++) { scanf("%d %d %d", &from, &to, &capacity); v.push_back({ from, to, capacity }); } sort(v.begin(), v.end(), cmp); for (auto i : v) { int burden = 0, b = i.c; for (int j = i.f; j < i.t; j++) burden = max(burden, t[j]); burden = min(c - burden, b); answer += burden; for (int j = i.f; j < i.t; j++) t[j] += burden; } printf("%d\n", answer); return 0; } | cs |
728x90
반응형
'알고리즘 문제 > BOJ' 카테고리의 다른 글
17285번 XORChic (0) | 2019.07.04 |
---|---|
2217번 로프 (0) | 2019.07.03 |
2981번 검문 (0) | 2019.06.29 |
1254번 팰린드롬 만들기 (0) | 2019.06.04 |
2150번 Strongly Connected Component (0) | 2019.06.02 |