计蒜客课程系列:蒜头学算术(DFS)
来源:互联网 发布:吴磊用的直播软件 编辑:程序博客网 时间:2024/04/28 16:49
Link:http://www.jisuanke.com/course/8/349
蒜头的数学实在是太差了,于是老师把他关到小黑屋让他闭门修炼。老师跟他一张纸,上面一排写着1, 2, 3...N这N个数,中间用空白分隔。老师让他在空白处填上加号或者减号。他让蒜头君求出一共有多少种加运算符的方法使得整个表达式的值为0,并输出所有的方案。比如N=7时,1 2 3 4 5 6 7排成一排,一种插入符号的方案为1+2-3+4-5-6+7=0。是不是很有趣,快来帮蒜头君解出这题吧(*´▽`)ノノ
输入为一行,包含一个整数N(3≤N≤9)。
输出为所有在每对数字间插入“+”或“-”后能得到和为零的数列,并按照字典(ASCII码)序排列。如果无解就输出一行None。
不知道字典序和ASCII也不要紧,我们看样例输出就清楚啦,1到N排成一排,先每个位置优先放"+",再放"-",这么放的原因是因为"+"的ASCII码要比"-"小。
样例1
输入:
7
输出:
1+2-3+4-5-6+71+2-3-4+5+6-71-2+3+4-5+6-71-2-3-4-5+6+7
AC code:
#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>using namespace std;int n,i,fg;char a[22];void dfs(int idx,int ret){ if(idx==n){ if(ret==0){ fg=1; printf("1"); for(i=1;i<=n-1;i++) printf("%c%d",a[i],i+1); puts(""); } return; } a[idx]='+'; dfs(idx+1,ret+idx+1); a[idx]='-'; dfs(idx+1,ret-(idx+1));}int main(){ while(scanf("%d",&n)==1){ fg=0; dfs(1,1); if(!fg) printf("None\n"); } return 0;}
0 0
- 计蒜客课程系列:蒜头学算术(DFS)
- 计蒜客课程算法—蒜头学算术(DFS)
- 蒜头学算术,计蒜客算法学习记录
- 蒜头学算术
- 深度搜索之蒜头学算术
- (深度优先搜索第二课) 蒜头学算数 - DFS
- 【计蒜客】基础算法入门之深度搜索(2)蒜头学算术d
- 计蒜客 蒜头君学英语
- 蒜头君学代数(二分)
- 算法学习——dfs篇——蒜头学算数
- 计蒜客课程系列:统计三角形(DFS+哈希状态存储标记)
- 蒜头君学英语--set()练习
- 一起学Windows Phone7开发系列课程
- 一起学Windows Phone7开发系列课程
- 一起学Windows Phone7开发系列课程
- 计蒜客 蒜头君开公司(全排列)
- 计蒜客 受欢迎的蒜头(tarjan缩点构图模板)
- 计蒜客bfs 蒜头君回家(增维打标记)
- Java中native关键字
- [LeetCode]Valid Sodoku
- 黑马程序员----JAVA概述
- HDU 2202(凸包内最大三角形面积)
- Java Web框架
- 计蒜客课程系列:蒜头学算术(DFS)
- ------银行系统------
- 【Android Util】全局控制Log打印日志
- 1037. Magic Coupon
- Head First Java资源
- java.util.ResourceBundle的用法及报错
- 字符编码笔记:ASCII,Unicode和UTF-8
- 牛腩新闻发布系统错误总结
- Laravel框架学习记录二 经验记录