HDOJ 1284 화폐 교환 문제 (완전 가방)

1422 단어
화폐 교환 문제
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7643    Accepted Submission(s): 4534
Problem Description
한 나라 에 서 는 1 점, 2 점, 3 점 짜 리 동전 만 있 고, 돈 N 을 동전 으로 바 꾸 는 것 은 여러 가지 방법 이 있다.당신 이 프로그램 을 짜 서 모두 몇 가지 환전 방법 이 있 는 지 계산 해 주세요.
 
Input
줄 마다 하나의 정수 N 만 있 고 N 은 32768 보다 작다.
 
Output
모든 입력, 출력 교환 방법 수 에 대응 합 니 다.
 
Sample Input

   
   
   
   
2934 12553

 
Sample Output

   
   
   
   
718831 13137761 ac :
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#define MAXN 44444
#define INF 0xfffffff
#define max(a,b) a>b?a:b
#define min(a,b) a>b?b?a
using namespace std;
int dp[MAXN];
void db()
{
	int i,j;
	dp[0]=1;
	for(i=1;i<=3;i++)
	{
		for(j=i;j<=32768;j++)
		{
			dp[j]=max(dp[j],dp[j-i]+dp[j]);
		}
	}
}
int main()
{
	int n;
	db();
	while(scanf("%d",&n)!=EOF)
	{
		printf("%d
",dp[n]); } return 0; }

좋은 웹페이지 즐겨찾기