HDU/HDOJ 2079 모 함수 수강 신청 시간
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1102 Accepted Submission(s): 924
Problem Description
또 수강 신청 시간 이 되 었 습 니 다. xhd 는 수강 신청 표를 보고 멍 해 졌 습 니 다. 다음 학기 가 좀 나 아 지 려 고 n 학점 을 배 우 는 데 몇 개의 조합 이 있 는 지 알 고 싶 습 니 다.네가 그 를 좀 도와 라.(xhd 는 같은 학점 의 수업 은 다 르 지 않다 고 생각한다)
Input
입력 한 데이터 의 첫 줄 은 T 조 데이터 가 있 음 을 나타 내 는 데이터 T 입 니 다.
각 그룹의 데이터 의 첫 줄 은 두 개의 정수 n (1 < = n < = 40), k (1 < = k < = 8) 이다.
이 어 k 줄 이 있 고 줄 마다 두 개의 정수 a (1 < = a < = 8), b (1 < = b < = 10) 가 있 으 며 학점 이 a 인 수업 은 b 문 임 을 나타 낸다.
Output
각 조 의 입력 데이터 에 대해 하나의 정 수 를 출력 하면 n 학점 을 배 우 는 조합 수 를 나타 낸다.
Sample Input
2
2 2
1 2
2 1
40 8
1 1
2 2
3 2
4 2
5 8
6 9
7 6
8 8
Sample Output
2
445
Author
xhd
Source
ACM 프로 그래 밍 기말고사평가 전 (감사 xhd & 8600)
코드:
템 플 릿 직접 사용 하기:
//
// :
// m , a[i], b[i]
// n
#include<stdio.h>
#include<string.h>
int c1[1000],c2[1000];//c1[n] n 。
int a[45],b[45];
int main()
{
int t,i,j,k,n,m,sum;
scanf("%d",&t);
while(t--)
{
sum=0;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&a[i],&b[i]);
sum=sum+a[i]*b[i];
}
for(i=0;i<=sum;i++)
{
c1[i]=0;
c2[i]=0;
}
c1[0]=1;
for(i=1;i<=b[1];i++)
c1[i*a[1]]=1;
int len=a[1]*b[1];
for(i=2;i<=m;i++)
{
for(j=0;j<=len;j++)
for(k=0;k<=a[i]*b[i];k=k+a[i])
c2[k+j]=c2[k+j]+c1[j];
len=len+a[i]*b[i];
for(j=0;j<=sum;j++)
{
c1[j]=c2[j];
c2[j]=0;
}
}
printf("%d
",c1[n]);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.