-
[BOJ]백준 22953번: 도도의 음식 준비(Python)/Backtracking, BinarySearchProblem Solving/BOJ(백준) 2021. 8. 26. 15:58
https://www.acmicpc.net/problem/22953
입국심사에서 백트래킹을 이용한 조합을 추가한 문제 ❗
격려의 최대 회수가 5이기 때문에 격려해줄 수 있는 모든 경우를 시뮬레이션 한 뒤 이진탐색으로 값을 구해주면 된당
import sys input=sys.stdin.readline n,k,c=map(int,input().split()) a=list(map(int,input().split())) s=sum(a)-len(a) def comb(idx, dep): global a, k, s if dep==c or dep>=s: left=0 right=10**12 while left+1<right: mid=(left+right)//2 cnt=0 for x in a: cnt+=mid//x if cnt>=k: right=mid else: left=mid return right ans=10**12 for i in range(idx, len(a)): if a[i]==1:continue a[i]-=1 ans=min(ans,comb(i, dep+1)) a[i]+=1 return ans print(comb(0, 0))
'Problem Solving > BOJ(백준)' 카테고리의 다른 글
[BOJ]백준 22955번: 고양이 도도의 탈출기(C++)/Dijkstra (428) 2021.08.31 [BOJ]백준 22939번: 쿠키크루(Python)/BruteForce (442) 2021.08.27 [BOJ]백준 3079번: 입국심사(Python)/BinarySearch (429) 2021.08.26 [BOJ]백준 21941번: 문자열 제거(Python)/String, DP (449) 2021.08.25 [BOJ]백준 2240번: 자두나무(C++)/DP (419) 2021.08.23