hdu2079选课时间(题目已修改,注意读题)

来源:互联网 发布:网络销售怎么样的 编辑:程序博客网 时间:2024/06/05 15:48

选课时间(题目已修改,注意读题)

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4321    Accepted Submission(s): 3374


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
22 21 22 140 81 12 23 24 25 86 97 68 8
 

Sample Output
2445
 

Author
xhd
#include<stdio.h>
#include<string.h>
int main()
{
int t,n,a,b,i,j,k;
int x[10],c1[45],c2[45];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&k);
memset(c1,0,sizeof(c1));
memset(c2,0,sizeof(c2));
while(k--)
{
scanf("%d%d",&a,&b);
x[a]=b;
}
for(i=0;i<=x[1];i++)
c1[i]=1;
for(i=2;i<=8;i++)
{
for(j=0;j<=n;j++)
for(k=0;k+j<=n&&k<=x[i]*i;k+=i)
c2[j+k]+=c1[j];
for(j=0;j<=n;j++)
{
c1[j]=c2[j];
c2[j]=0;
}
}
printf("%d\n",c1[n]);
}
return 0;
}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 欠赌债跑路家人怎么办 口头欠下的赌债怎么办 我赌博欠了230万怎么办 被淘宝商家骗了怎么办 东西卡在喉咙里怎么办 东西粘在喉咙里怎么办 有异物卡在喉咙怎么办 喉咙老有异物感怎么办 喉咙疼有异物感怎么办 喉咙卡了小鱼刺怎么办 嗓子卡了小鱼刺怎么办 骨头卡在喉咙里怎么办 卡刺喉咙怎么办小窍门 中百购物卡过期怎么办 得仕卡过期了怎么办 超市购物卡丢了怎么办 中石化油卡丢失怎么办 etc同车换车牌了怎么办 石油加油卡丢了怎么办 石化加油卡丢了怎么办 怎么办中石化的加油卡 中石油油卡丢失怎么办 公司加油卡丢了怎么办 yy频道被回收了怎么办 油卡里的圈存怎么办 农商银行圈存怎么办 社保卡号忘记了怎么办 陕西壳牌加油卡怎么办 联通用超了流量怎么办 联通3g上不了网怎么办 车玻璃水冻住了怎么办 车里玻璃水冻了怎么办 做现货亏了60万怎么办 宿舍太吵晚上睡不着觉怎么办 脚扎了钉子肿了怎么办 龙血树叶子下垂怎么办 龙血树叶子卷曲怎么办 3岁宝宝长期便秘怎么办 4岁小儿便秘严重怎么办 3岁宝宝便秘严重怎么办 3岁宝宝一直便秘怎么办