Sum It Up
2015-04-06 20:01
148 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1258
#include<iostream>
using namespace std;
int sum,a[1010],b[1010],f,n,k;
void dfs(int x,int num,int cur)
{
if(x==sum)
{
f=1;
cout<<b[0];
for(int i=1;i<num;i++)
{
cout<<"+"<<b[i];
}
cout<<endl;
return;
}
for(int i=cur;i<n;i++)
{
if(x+a[i]<=sum)
{
b[num]=a[i];
dfs(x+a[i],num+1,i+1);
while(a[i]==a[i+1])
i++;
}
}
}
int main()
{
while(cin>>sum>>n,sum||n)
{
for(int i=0;i<n;i++)
cin>>a[i];
cout<<"Sums of "<<sum<<":\n";
f=0;
dfs(0,0,0);
if(f==0)
cout<<"NONE\n";
}
return 0;
}
http://acm.hdu.edu.cn/showproblem.php?pid=1258
#include<iostream>
using namespace std;
int sum,a[1010],b[1010],f,n,k;
void dfs(int x,int num,int cur)
{
if(x==sum)
{
f=1;
cout<<b[0];
for(int i=1;i<num;i++)
{
cout<<"+"<<b[i];
}
cout<<endl;
return;
}
for(int i=cur;i<n;i++)
{
if(x+a[i]<=sum)
{
b[num]=a[i];
dfs(x+a[i],num+1,i+1);
while(a[i]==a[i+1])
i++;
}
}
}
int main()
{
while(cin>>sum>>n,sum||n)
{
for(int i=0;i<n;i++)
cin>>a[i];
cout<<"Sums of "<<sum<<":\n";
f=0;
dfs(0,0,0);
if(f==0)
cout<<"NONE\n";
}
return 0;
}
相关文章推荐
- POJ1564 Sum It Up(DFS)
- (step4.3.4)hdu 1258(Sum It Up——DFS)
- HDU1258Sum It Up
- HDU 1258 Sum It Up
- hdu 1258 Sum It Up
- hdu 1258 Sum It Up
- POJ 1564 && HDU 1258 Sum It Up(dfs)
- HDU 1258 Sum It Up 深搜
- POJ 1564 Sum It Up
- hdu 1258 Sum It Up
- HDU 1258 Sum It Up
- Sum it up
- HDU 1258 Sum It Up
- 菜鸟学算法之POJ 1564 Sum It Up
- poj 1564 && zoj 1711 Sum It Up (dfs)
- HDU 1258 - Sum It Up
- Sum It Up_poj1564_dfs+水
- HDU 1258 Sum It Up
- hdoj 1258 Sum It Up (递归回溯)
- C - Sum It Up hdu1258