백준 12099 / C++
https://www.acmicpc.net/problem/12099 12099번: 점심메뉴 Q개의 줄에 줄마다 각 날의 영우와 승관이가 둘 다 좋아하는 메뉴의 수, 즉 u ≤ a ≤ v 이고, x ≤ b ≤ y 인 메뉴의 수를 출력한다 www.acmicpc.net [ 풀이 ] 매운맛, 단맛 수치가 [u,v], [x,y]에 포함되는 메뉴의 개수를 구하는 문제이다. 값이 10억이므로 빠르게 구간 인덱스 판단을 위해 이분탐색을 해야한다. 먼저 값을 매운맛 기준으로 정렬한 후, u보다 크거나 같은 최소 인덱스, v 초과 최소 인덱스를 찾는다. 그 인덱스사이를 순회하며 단맛 또는 [x,y]에 포함되는지 판단해주면 된다. [ 코드 ] #include using namespace std; int n, q, u, v,..
2022. 7. 15.
백준 16118 / C++
https://www.acmicpc.net/problem/16118 16118번: 달빛 여우 첫 줄에 나무 그루터기의 개수와 오솔길의 개수를 의미하는 정수 N, M(2 ≤ N ≤ 4,000, 1 ≤ M ≤ 100,000)이 주어진다. 두 번째 줄부터 M개의 줄에 걸쳐 각 줄에 세 개의 정수 a, b, d(1 ≤ a, b ≤ N, a ≠ b www.acmicpc.net [ 풀이 ] 여우는 v로 가고 늑대는 2v v/2 를 반복한다. 이 때 시간은 여우는 d/v , 늑대는 2d/v 또는 d/2v가 걸린다. 모두 정수로 맞춰주면, 시간은 여우가 2t 2t .... 늑대는 t / 4t / t / 4t .. 이렇게 걸린다. 여우의 경우 그냥 다익을 돌려주면 최단시간이 나온다. 늑대의 경우가 이 문제의 핵심이다. ..
2022. 7. 15.