深搜——数字划分问题

TYVJ 1271 零式求和

描述

请考虑一个由1到N(N=3, 4, 5 ... 9)的数字组成的递增数列:1 2 3 ... N。现在请在数列中插入“+”表示加,或者“-”表示减,抑或是“ ”表示空白(例如1-2 3就等于1-23),来将每一对数字组合在一起(请不在第一个数字前插入符号)。计算该表达式的结果并注意你是否得到了和为零。请你写一个程序找出所有产生和为零的长度为N的数列。 

输入格式

单独的一行表示整数N (3 <= N <= 9)。 

输出格式

按照ASCII码的顺序,输出所有在每对数字间插入“+”, “-”, 或 “ ”后能得到和为零的数列。 

测试样例1

输入

7

输出

1+2-3+4-5-6+7 
1+2-3-4+5+6-7 
1-2 3+4+5+6+7 
1-2 3-4 5+6 7 
1-2+3+4-5+6-7 
1-2-3-4-5+6+7
思路:
1.枚举加减乘除,用dfs,在dfs的过程中把加减乘除搞一个数组记录下来
2.如果递归到了最后一个数字,考虑算和的问题,从低位枚举,如果遇到空格,把当前要加或减的数进一位,如果遇到加或减就将记录的数加进去,最后再处理一下,判断,计数
代码:
 1 #include<iostream>
 2 using namespace std;
 3 int n,ans[20],acc;
 4 void judge(){
 5     int sign = 1;
 6     int now = 0;
 7     int next = 1;
 8     for(int i = 1;i < n;i++){
 9         if(ans[i] == 3){
10             next = next * 10 + (i+1);
11         }else{
12             if(sign == 1) now += next;
13             if(sign == 2) now -= next;
14             if(ans[i] == 1) sign = 1;
15             if(ans[i] == 2) sign = 2;
16             next = i + 1;
17         }
18     }
19     if(sign == 1) now += next;
20     if(sign == 2) now -= next;
21     if(!now){
22         for(int i = 1;i < n;i++){
23             cout<<i;
24             if(ans[i] == 1) cout<<"+";
25             if(ans[i] == 2) cout<<"-";
26             if(ans[i] == 3) cout<<" ";
27         }
28         cout<<n<<endl;
29     }
30 }
31 int dfs(int deep){
32     if(deep == n){
33         judge();
34         return 0;
35     }
36     ans[deep] = 3;
37     dfs(deep+1);
38     ans[deep] = 1;
39     dfs(deep+1);
40     ans[deep] = 2;
41     dfs(deep+1);
42 }
43 int main(){
44     cin>>n;
45     dfs(1);
46     return 0;
47 }
View Code

 

 

转载于:https://www.cnblogs.com/hyfer/p/4823751.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正交解调原理

雷达系统发射和接收的脉冲是实信号。本文解释了如何通过正交解调对接收信号进行频带搬移&#xff0c;从而获得一个复的基带信号。  一般具有较高载频的低频调制实信号表示如下&#xff1a; x(τ)cos[2πf0τϕ(τ)](1)x(\tau)cos[2\pi f_0\tau\phi(\tau)]\tag{1} x(τ)cos[2π…

channelinactive触发后不关闭channel_go那些事儿|channel使用及其实现原理

目录 channel背景channel基本用法channel应用场景channel实现原理channel数据结构channel实现方式channel注意事项闲聊欢迎加入我的公众号【迈莫coding】 一起pk大厂1channel背景channel是Go的核心类型&#xff0c;是Go语言内置的类型&#xff0c;你无需引包&#xff0c;就能使…

matlab画信号频谱

为了让大学生活充实一点&#xff0c;多学点东西&#xff0c;我选修了《数字信号处理》。现在充实得不要不要的。 clc close all clear%参数设置% Fs 1000; % Sampling frequency T 1/Fs; % Sampling period L 1500; …

关于字节序(大端法、小端法)的定义

关于字节序(大端法、小端法)的定义《UNXI网络编程》定义&#xff1a;术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址&#xff0c;即是小端字节序&#xff1b;大端存在起始地址&#xff0c;即是大端字节序。 也可以说&#xff…

html div初始隐藏点击可见_3种CSS3移动手机隐藏菜单UI界面代码解析/附源码下载...

这是一款效果非常酷的jQuery和CSS3移动手机隐藏菜单UI界面设计。这个UI设计共有三种不同的打开隐藏菜单的效果&#xff0c;分别为滑动显示&#xff0c;Material Design风格效果和展开式效果。使用方法HTML结构这三种不同的隐藏菜单的HTML结构大致基本相同。第一种滑动效果菜单的…

《数据结构与抽象:Java语言描述(原书第4版)》一P.4.1 标识类

本节书摘来华章计算机《数据结构与抽象&#xff1a;Java语言描述&#xff08;原书第4版&#xff09;》一书中的第1章 &#xff0c;&#xff3b;美&#xff3d;弗兰克M.卡拉诺&#xff08;Frank M. Carrano&#xff09; 蒂莫西M.亨利&#xff08;Timothy M. Henry&#xff09; …

【SVM】简单介绍(一)

1、结构风险最小化 我们想要在未知的数据上得到低的错误率&#xff0c;这叫做structural risk minimization;相对的&#xff0c;训练误差叫做empirical risk minimization 要是我们能有这样一个式子就好了&#xff1a; Test error rate <train error rate f(N,h,p)\text {…

L8_2

4.留下pid为12345的那个sh进程&#xff0c;杀死系统中所有其它sh进程 ps –ef|grep sh |awk ‘{if($2!”12345”) {print “kill “$2}}’ >killpid.sh cat killpid.sh ./killpid.sh 5. 根据以下日志文件&#xff0c;计算使用各种浏览器的人所占的百分比&#xff08;注意先排…

# 遍历删除字典元素_第六章 字典

一、使用字典一个简单的字典字典是一系列键——值对。每个键都与一个值相关联&#xff0c;可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上&#xff0c;可将任何Python对象用作字典中的值。在Python中&#xff0c;字典用放在花括号{}…

【SVM】简单介绍(二)

1、SVM另一种推法 我们不管分类平面&#xff0c;直接去假设Margin的两个边界&#xff1a; Plus-plane {x:w⋅xb1}Minus-plane {x:w⋅xb−1}\begin{aligned} & \text { Plus-plane }\{\boldsymbol{x}: \boldsymbol{w} \cdot \boldsymbol{x}b1\} \\ & \text { Minus-plan…

图像像素点赋值_Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像...

普通操作1. 读取像素读取像素可以通过行坐标和列坐标来进行访问&#xff0c;灰度图像直接返回灰度值&#xff0c;彩色图像则返回B、G、R三个分量。需要注意的是&#xff0c; OpenCV 读取图像是 BGR 存储显示。灰度图片读取操作&#xff1a;import cv2 as cv# 灰度图像读取gray_…

cocopods

一、什么是CocoaPods 1、为什么需要CocoaPods 在进行iOS开发的时候&#xff0c;总免不了使用第三方的开源库&#xff0c;比如SBJson、AFNetworking、Reachability等等。使用这些库的时候通常需要&#xff1a; 下载开源库的源代码并引入工程向工程中添加开源库使用到的framework…

CSS3学习手记(10) 过渡

CSS3过渡 允许css的属性值在一定的时间内平滑地过渡在鼠标单击、获取焦点、被点击或对元素任何改变中触发&#xff0c;并圆滑地以动画效果改变CSS的属性值transition transition-property属性检索或设置对象中的参与过渡的属性 语法 transition-property:none|all|property …

全局搜索快捷键_Windows 自带的聚合搜索来了,与 Mac 的 Spotlight 相比体验如何?...

最近 Windows 10 推出了自带的聚合搜索功能 PowerToys Run&#xff0c;取代了之前的 WinR。苹果的 macOS 以人性化著称&#xff0c;有几个功能让 Windows 用户一直很羡慕&#xff0c;比如全局的聚合搜索工具 Spotlight。在任何界面 command空格&#xff0c;输入关键字就能搜索电…

【SVM】简单介绍(三)

我们考虑SVM的对偶问题&#xff0c;我们通常是在对偶空间中进行求解的。 1、Lagrange Multipliers 对于一个很一般的问题 Minimize f(x)subject to {a(x)≥0b(x)≤0c(x)0\begin{aligned} \text { Minimize } & f(x) \\ \text { subject to } \quad & \left\{\begin{a…

寻找白板上的便签条

问题来源&#xff1a;http://answers.opencv.org/question/162480/contour-detection-for-gray-stickers-on-white-background/ 题目的大概意思就是这样的白板&#xff0c;寻找上面的各种便签条。我找到了橘色的&#xff0c;结果是这样代码是这样Mat src imread("gray-st…

gg

转载于:https://www.cnblogs.com/lyzuikeai/p/7091206.html

HDU 1728 逃离迷宫

这道题做的我想哭啊。。WA了将近十次了吧 一开始我用数组模拟的队列&#xff0c;后来和老大代码对拍&#xff0c;感觉改的是基本都一模一样了&#xff0c;还是WA 实在没有办法了&#xff0c;改用queue了 题目里的x是列y是行&#xff0c;和代码里的反过来的&#xff0c;要注意&a…

Nginx(六)-- 配置文件之Gzip

1.概念及作用 Gizp主要对内容、静态文件做压缩&#xff0c;用来提升网站访问速度&#xff0c;节省带宽。 2.使用方法 gzip既可以配置在server中&#xff0c;也可以配置在server外&#xff0c;此处配置在server中&#xff0c;如下&#xff1a; 说明&#xff1a;  gizp on|off 是…

误码率越高越好还是越低越好_夜间护理步骤越多越好还是越少越好?NFF

现在很多人都知道了夜晚是护肤的黄金护肤时间&#xff0c;有些很聪明的姐妹就从夜晚着手&#xff0c;使用很多种护肤品&#xff0c;希望达到事半功倍的效果&#xff0c;但好皮肤不常有&#xff0c;皮肤问题却常有&#xff01;既然如此&#xff0c;不少人就问了&#xff0c;夜间…