통계 코 인

2399 단어
통계 동전
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3844    Accepted Submission(s): 2693
Problem Description
1 점, 2 점, 5 점 으로 구 성 된 n 개의 동전 의 총 액면가 가 m 점 이 라 고 가정 하고 모두 몇 가지 가능 한 조합 방식 (특정한 액면가 의 동전 은 수량 이 0 일 수 있다) 을 구한다.
 
Input
입력 데이터 첫 줄 에 T 조 테스트 데이터 가 있 음 을 나타 내 는 정수 T 가 있 습 니 다.
다음 T 줄 은 줄 마다 n, m, n 과 m 의 의미 가 같다.
 
Output
각 그룹의 테스트 데이터 에 대해 가능 한 조합 방식 수 를 출력 하 십시오.
각 그룹의 출력 이 한 줄 을 차지한다.
 
Sample Input

   
   
   
   
2 3 5 4 8

 
Sample Output

   
   
   
   
1 2
/* :( )      , 1 、2 、5 m , n 。     , , n 。
: ,     */
#include<cstdio>
#include<cstring>
int c1[1010][1010],c2[1010][1010];
int main()
{
    int T,i,j,k,h,n,m;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d %d",&n,&m);
        memset(c1,0,sizeof(c1));
        memset(c2,0,sizeof(c2));
        for(i=0; i<=n; i++)
        c1[i][i]=1;
        for(i=2; i<=5; i+=3)
        {
            for(j=0; j<=m; j++)
            {             
                for(k=0; k*i+j<=m&&k<=n; k++) //     
                {       
                    for(h=0; h+k<=n; h++)     //     
                    c2[k*i+j][h+k]+=c1[j][h]; 
                }
            }
            for(j=0; j<=m; j++)
            for(h=0; h<=n; h++)
            {
                c1[j][h]=c2[j][h];
                c2[j][h]=0;
            }
        }
        printf("%d
",c1[m][n]); } return 0; }

좋은 웹페이지 즐겨찾기