HDU-2266-How Many Equations Can You Find【交叉DFS】

来源:互联网 发布:最全双色球缩水软件 编辑:程序博客网 时间:2024/06/06 13:15

题目链接:点击打开链接

How Many Equations Can You Find

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 919    Accepted Submission(s): 613


Problem Description
Now give you an string which only contains 0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9.You are asked to add the sign ‘+’ or ’-’ between the characters. Just like give you a string “12345”, you can work out a string “123+4-5”. Now give you an integer N, please tell me how many ways can you find to make the result of the string equal to N .You can only choose at most one sign between two adjacent characters.
 

Input
Each case contains a string s and a number N . You may be sure the length of the string will not exceed 12 and the absolute value of N will not exceed 999999999999.
 

Output
The output contains one line for each data set : the number of ways you can find to make the equation.
 

Sample Input
123456789 321 1
 

Sample Output
181

大意:给你一个字符串,你可以在任意字符中间加入 “+” 或 “-”,使得最后的运算结果为 n

思路:从起始位置到最后位置的搜索,加、减交叉搜索,注意第一个字符前不能添减号(实际上是不能添任何符号的,但是添一个加号还是其本身,所以添不添加号无所谓了)

#include<cstdio>#include<algorithm>#include<cstring>#define LL long longusing namespace std;LL n,ans;int len;char str[50];void dfs(int id,LL sum){if(id==len) // 这里判 id==len是因为下面 dfs的是 i+1,如果改成 id==n-1,则字符串的最后一位就没计算了 {if(sum==n){ans++;}return ;}LL shu=0;for(int i=id;i<len;i++){shu=shu*10+str[i]-'0';dfs(i+1,sum+shu);if(id)dfs(i+1,sum-shu);}}int main(){while(~scanf("%s%lld",str,&n)){len=strlen(str);ans=0;dfs(0,0);printf("%lld\n",ans);}return 0;} 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 烫发后头发干枯毛躁怎么办 烫完头发掉发怎么办 烫发掉发严重该怎么办 烫头发后掉头发怎么办 烫过头发后毛躁怎么办 烫了头发像大妈怎么办 头发烫了之后很毛躁怎么办 鳄龟爪子烂了怎么办 乌龟壳边缘烂了怎么办 乌龟拉绿色的水怎么办 小乌龟龟壳变软怎么办 鳄龟不待在水里怎么办 脖子整天黏黏的怎么办 有脊椎侧弯跳舞怎么办 落枕10天还不好怎么办 落枕十几天没好怎么办 肩一边高一边低怎么办 35岁无稳定工作怎么办 机械手表走的快怎么办 机械表发条紧了怎么办 两只乌龟互相咬怎么办? 乌龟鼻子摔烂了怎么办 剃刀龟脖子肿了怎么办 遇见有戾气的人怎么办 身上的寒气太重怎么办 身体里寒气太重怎么办 做人事招不到人怎么办 苹果6cpu坏了怎么办 苹果6s升级不了怎么办 冬天打游戏手冷怎么办 漂流瓶不能用了怎么办 感冒鼻子闻不到味道怎么办 胃难受想吐头晕怎么办 心口窝堵得慌怎么办 嘴巴里苦的很怎么办 怀孕了嘴巴好苦怎么办 嘴巴没味道想吐怎么办 手机流量不够用怎么办移动 sd卡图片不显示怎么办 苹果忘了id账号怎么办 苹果id号忘记了怎么办