博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
USACO Zero Sum
阅读量:6992 次
发布时间:2019-06-27

本文共 1155 字,大约阅读时间需要 3 分钟。

想练练自己的深搜,倔强的不愿意for循环来搞。写了五个参数的dfs最后ac掉了。最先我写的是两个参数的,因为没看清题意以为求的是解的总数,后来才知道要打印出所有解。参数一直加,直到加了五个参数。我的dfs很烂。但慢慢写总会好的。

View Code
#include 
#include
#include
#include
#include
#include
#include
using namespace std;int n,ans,sum;char s[100];void dfs(int cur,int sum,int len,int fa,int last){ s[len]=cur+'0'; if(cur==n) { if(sum==0) printf("%s\n",s); return; } for(int i=0;i<3;i++) { if(i==0) { len++; s[len]=' '; if(fa==-1) dfs(cur+1,sum*10+cur+1,len+1,fa,last);// else if(fa==0)// dfs(cur+1,sum*10+cur+1,len+1,fa); else if(fa==1) dfs(cur+1,sum-last+(last*10+cur+1),len+1,fa,last*10+cur+1); else if(fa==2) dfs(cur+1,sum+last-(last*10+cur+1),len+1,fa,last*10+cur+1); len--; } if(i==1) { len++; s[len]='+'; dfs(cur+1,sum+cur+1,len+1,i,cur+1); len--; } if(i==2) { len++; s[len]='-'; dfs(cur+1,sum-cur-1,len+1,i,cur+1); len--; } } len--;}int main(){ while(~scanf("%d",&n)) { ans=sum=0; memset(s,0,sizeof(s)); dfs(1,1,0,-1,0); } return 0;}

相信大家有更容易的做法,请多多指教。。

转载于:https://www.cnblogs.com/RainingDays/archive/2013/03/05/2944026.html

你可能感兴趣的文章
MySQL系列:数据库基本操作(1)
查看>>
hdu1058(dp)
查看>>
android EditText与TextView几个常用的属性
查看>>
SDN第五次上机作业
查看>>
课堂练习
查看>>
Git 工具 - 储藏(Stashing)
查看>>
越狱(快速幂)
查看>>
联合查询的 SQL 语法
查看>>
Python语法
查看>>
服务器使用bbr加速配置
查看>>
Hadoop综合大作业
查看>>
JAVA 消耗 CPU过高排查方法
查看>>
DOM和BOM
查看>>
prometheus监控示例
查看>>
细菌的繁殖
查看>>
Windows Server 2008远程连接人数限制修改及修改端口
查看>>
第70天:jQuery基本选择器(一)
查看>>
目前微信 微博 新浪 豆瓣等所有分享的js插件
查看>>
源码包安装
查看>>
处理:“ORA-28002: the password will expire within 7 days”的问题
查看>>