[동적 기획] 최소 동전 문제
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/3016/pid/1725
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
n 가지 서로 다른 액면가 의 동전 이 설치 되 어 있 고 각 동전 의 액면가 가 배열 T [1: n] 에 저 장 됩 니 다.지금 이 액면가 의 동전 으로 거스름돈 을 찾 으 려 고 합 니 다.사용 가능 한 각종 액면가 의 동전 개 수 는 배열 Coins [1: n] 에 저 장 됩 니 다.
임의의 금액 0 ≤ m ≤ 20001 에 대해 최소 동전 으로 m 를 찾 는 방법 을 설계 합 니 다.
주어진 1 ≤ n ≤ 10, 동전 액면가 수조 T 와 사용 가능 한 각종 액면가 의 동전 개수 수조 Coins, 그리고 돈 수 m, 0 ≤ m ≤ 20001, 거스름돈 m 의 최소 동전 수 를 계산한다.
Input
입력 데이터 의 첫 번 째 줄 에는 1 개의 정수 만 n 의 값 을 주 고 두 번 째 줄 부터 각각 T [j] 와 Coins [j] 이다.마지막 한 줄 은 거스름돈 m 입 니 다.
Output
출력 데 이 터 는 하나의 정수 만 있 고 계 산 된 최소 동전 수 를 나타 낸다.문제 가 풀 리 지 않 을 때 출력 - 1.
Sample Input
3
1 3
2 3
5 3
18 Sample Output
5 Hint
Source
알고리즘 사고방식:
'가방 문제' 와 의 비교 와 분석:
알고리즘 설계:
알고리즘 주의사항:
원본 코드:
1 // .cpp : "main" 。 。
2 //
3
4 #include "pch.h"
5 #include
6 #include
7 #define INF 0x3f3f3f3f
8 using namespace std;
9
10 int main() {
11
12 int des, n, T[20001], Coin[20001];
13 long long int dp[20001];
14 memset(dp, INF, sizeof(dp));
15 cin >> n;
16 for (int i = 0; i < n; i++) {
17 cin >> T[i] >> Coin[i];
18 }
19
20 cin >> des;
21 dp[0] = 0;
22
23 //
24 for (int i = 0; i < n; i++)
25 for (int j = 1; j <= Coin[i]; j++)
26 for (int k = des; k >= T[i]; k--)
27 dp[k] = min(dp[k], dp[k - T[i]] + 1);
28
29 cout << (dp[des]1) << endl;
30 }
31 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.