*题意:

在1到n之间添加‘+’,‘-’,‘.’三种运算符令最后结果为0,输出前20种添加方法,若不足20种则全       输出,最后输出共有多少种添加方式。(‘.’表示将其两侧的数连成一个数例:1.2.3是123)
*思路:dfs,枚举各种情况,找出合适的。
*代码:

#include<iostream>
#include<cstdio>
using namespace std;
char symbol[16];
int num,n;
void print()
{int i;for(i=1;iprintf("%d %c ",i,symbol[i]);printf("%d\n",i);
}
void dfs(int sum,int deep,int pre)
{if(deep==n){if(sum==0){   num++;if(num<=20)print();}}else{int next;symbol[deep]='+';next=deep+1;dfs(sum+next,deep+1,next);symbol[deep]='-';next=deep+1;dfs(sum-next,deep+1,next);symbol[deep]='.';if(deep<9)next=pre*10+deep+1;elsenext=pre*100+deep+1;int i=deep-1;while(symbol[i]=='.'&&i>=0)i--;if(symbol[i]=='+')dfs(sum+next-pre,deep+1,next);if(symbol[i]=='-')dfs(sum-next+pre,deep+1,next);}
}
int main()
{cin>>n;num=0;symbol[0]='+';dfs(1,1,1);printf("%d\n",num);return 0;
}

刚做搜索找的别人的代码,注意对‘.’的处理,其他还是挺简单的。  

转载于:https://www.cnblogs.com/Neptunes/p/3278387.html

poj 1950 Dessert(dfs)相关推荐

  1. POJ 1950 Dessert DFS 搜索

    题意:输入n(1 <= n <= 15),求由1到n的数经过'+','-'或'.'三种运算后值为0的可能情况数,并输出前20组答案,若不足20组,输出全部.             (10 ...

  2. poj 1950 Dessert 深搜

    题意: 给n,问有多少和由1,2...n,和'+','-','.'(表示连接,4.5表示45)组成,值为0的表达式. 分析: 深搜,因为要枚举到"连接"的情况,所以传送pre表示上 ...

  3. poj 1950 Dessert(dfs枚举,模拟运算过程)

    /* 这个代码运行的时间长主要是因为每次枚举之后都要重新计算一下和的值! 如果要快的话,应该在dfs,也就是枚举的过程中计算出前边的数值(这种方法见第二个代码),直到最后,这样不必每一次枚举都要从头再 ...

  4. POJ 1950 Dessert

    该说终于rand到一道正常画风的搜索题吗... 本题就是简单dfs 不过在"."这个符号的处理上边要想想... 注意深度大于20层是不打印的...之前因为这个OLE了好几次... ...

  5. POJ - 2386 (dfs简单应用)

    POJ - 2386 (dfs深度优先搜索) 题目正文: Due to recent rains, water has pooled in various places in Farmer John' ...

  6. POJ 2386(DFS)

    深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次. 举例说明之:下图是一个无向 ...

  7. POJ - 2083 Fractal(dfs,递归画图)

    题目链接:点击查看 题目大意:给出一个n,要求递归画图 题目分析:重点就是设计递归啦,也没什么好说的,因为题目保证了n小于等于7,然后矩阵的大小为3^(n-1)*3^(n-1)所以矩阵最大不超过729 ...

  8. POJ - 1190 生日蛋糕(dfs+剪枝)

    题目链接:点击查看 题目大意:给出生日蛋糕的总体积,以及有多少层,我们要求下面的每一层的高度和半径都要比上面一层的大,并且都是整数,求满足要求的最小表面积 题目分析:因为题目提到了半径和高度都是整数, ...

  9. POJ - 1011 Sticks(dfs+剪枝)(好题!!)

    题目链接:点击查看 题目大意:乔治拿来一组等长的木棍,将他们随机砍断,使得每一节木棍的长度都不超过50个单位长度,然后他又想将这些木棍恢复成砍断之前的状态,但他忘记了初始时有多少根木棍以及木棍的初始长 ...

最新文章

  1. 【硬件基础】制作直流电源
  2. MC, MCMC, Gibbs采样 原理实现(in R)
  3. java ftp下载文件 慢_java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题...
  4. Android Studio生成aar包的方法以及解压aar包的方法
  5. 从S3中导入数据到Dynamodb
  6. msmq 发送到远程专用队列不存在_不知道消息中间件是什么?RabbitMQ从头到尾详解介绍...
  7. iOS SDK:预览和打开文档
  8. JUC和线程池的详细讲解
  9. 使用excel绘制统计分布表(T分布表)
  10. 想找一款读书笔记软件?快来试试BookxNote
  11. 软件工程--团队作业2
  12. win10此计算机未连接到网络,win10提示无法连接到此网络怎么解决
  13. Eason's concert
  14. Duang!Duang!Duang!直击痛点的一款 HTTP 客户端框架(Java),墙裂推荐!
  15. Hibernate的关系映射——Many-To-Many(多对多)
  16. 最新版FusionCharts2D面积图
  17. week11——实验(月模拟题3:CSP201609 03)
  18. VM虚拟机-三种网络连接方式(桥接、NAT、仅主机模式)
  19. 一款不错的流式布局LayoutManager-FlowLayout
  20. 在Vue中使用WebSocket+HighCharts+Canvas实现高性能的频谱瀑布图

热门文章

  1. 2.4.XXX 内核配置 介绍
  2. Linux版csgo调全屏窗口,csgo全屏和全屏窗口 哔哩哔哩直播姬黑屏解决方法
  3. 博客园电子期刊2012年8月刊发布啦
  4. rabbitMQ guest账号登录总是提示失败
  5. 2009年三季度上市公司报表1
  6. 分支-12. 计算火车执行时间(15)
  7. 做了 8 个月的技术经理,我信了……
  8. android手机可以设置屏幕锁定,Android手机屏幕锁定设置方法(九个点图案)
  9. 不花一分钱做个在线的gif合成服务
  10. 代码随想录贪心算法——买卖股票的最佳时机含手续费