您的位置:首页 > 其它

HDU 杭电acm 2079-选课时间

2017-02-05 15:03 351 查看
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2079

/************************************************************************

此题深搜即可,但要剪枝,否则超时。

/***************************************************dfs

代码如下:

/***********************

#include<stdio.h>
int n,k,T;
int a[9][2];
int count;

void dfs(int start,int sum)
{
if(sum==n)
{
count++;
return ;
}
if(start>=k||sum>n)
{
return ;
}
for(int i=0;i<=a[start][1];i++)
{
dfs(start+1,sum+i*a[start][0]);
}
}
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&k);
for(int i=0;i<k;i++)
{
scanf("%d%d",&a[i][0],&a[i][1]);
}
count=0;
dfs(0,0);
printf("%d\n",count);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: