hdoj2266

来源:互联网 发布:数据库中的主键怎么设 编辑:程序博客网 时间:2024/05/24 06:18

这种方法的做过好几次,可还是。。。

思路:参数是长度,因为前面的已经加起来了,分加减两种情况分别dfs就可以了,其实挺简单,还是自己水平太差。

代码如下:

#include<iostream>#include<string>#include<cstdio>using namespace std;long n;int cnt;string s;long long he(int i,int j){    long sum=0;    for(int k=i; k<=j; k++)        sum=sum*10+s[k]-'0';    return sum;}void dfs(int len,long sum){    if(len>=s.size())        if(sum==n)        {            cnt++;            return;        }            for(int i=len; i<s.size(); i++)            {                dfs(i+1,sum+he(len,i));                if(len!=0)                    dfs(i+1,sum-he(len,i));            }}int main(){    while(cin>>s>>n)    {        //getchar();        cnt=0;        dfs(0,0);        cout<<cnt<<endl;    }    return 0;}


 

原创粉丝点击