您的位置:首页 > 编程语言

hdu 2566 统计硬币 dfs 不能排除组合重复的情况 代码不完整

2016-01-09 16:18 393 查看
#include<iostream>
#include<math.h>
#include<cstring>
#include<cstdio>
using namespace std;

int n,m;
int count;
int num[4]={0,1,2,5};

void dfs(int sum,int cnt)
{
int x;
int i;

if(cnt>n||sum>m||(cnt==n&&sum<m)||(cnt<n&&sum==m))//
return ;

if(cnt==n&&sum==m)
{
count++;
}

for(i=1;i<=3;i++)//
{
x=sum+num[i];
if(x<=m&&cnt<=n)
{
dfs(x,cnt+1);
}
}
return ;
}

int main()
{
int t;
while(cin>>t)//
{
while(t--)//
{
cin>>n>>m;
int cnt=0;
int sum=0;
count=0;
dfs(sum,cnt);//
cout<<count<<endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: