深搜——數字劃分問題

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.pswp.cn/news/258311.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258311.shtml
英文地址,請注明出處:http://en.pswp.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π…

修改windows系統下xampp中apache端口被其他程式占用的問題

windows 7安裝後啟動xampp, 提示port 443 被其他程式占用。 網上查找解決方案: http://stackoverflow.com/questions/21182512/how-to-stop-vmware-port-error-of-443-on-xampp-control-panel-v3-2-1 * Open up httpd-ssl.conf in path2xampp\apache\conf\extra * Look for the…

channelinactive觸發后不關閉channel_go那些事兒|channel使用及其實現原理

目錄 channel背景channel基本用法channel應用場景channel實現原理channel數據結構channel實現方式channel注意事項閑聊歡迎加入我的公眾號【邁莫coding】 一起pk大廠1channel背景channel是Go的核心類型&#xff0c;是Go語言內置的類型&#xff0c;你無需引包&#xff0c;就能使…

遞推-練習2--noi3525:上臺階

遞推-練習2--noi3525:上臺階 一、心得 二、題目 3525:上臺階 總時間限制: 1000ms內存限制: 65536kB描述樓梯有n(100 > n > 0)階臺階,上樓時可以一步上1階,也可以一步上2階,也可以一步上3階&#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;注意先排…

iOS 打包iPa

http://blog.fir.im/how-to-build-adhoc-ipa/ 之前都是打包好ipa然后發送給客戶&#xff0c;特麻煩&#xff0c;fir.im網站不錯 迅速獲取自己手機的udid: http://fir.im/udid 網頁安裝ipa&#xff1a; http://fir.im/cxsv 轉載于:https://www.cnblogs.com/shidaying/p/4829102…

# 遍歷刪除字典元素_第六章 字典

一、使用字典一個簡單的字典字典是一系列鍵——值對。每個鍵都與一個值相關聯&#xff0c;可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字符串、列表乃至字典。事實上&#xff0c;可將任何Python對象用作字典中的值。在Python中&#xff0c;字典用放在花括號{}…

user-select屬性用法

這是在css3 UI規范中新增的一個功能&#xff0c;用來控制內容的可選擇性。 auto——默認值&#xff0c;用戶可以選中元素中的內容none——用戶不能選擇元素中的任何內容text——用戶可以選擇元素中的文本element——文本可選&#xff0c;但僅限元素的邊界內(只有IE和FF支持)all…

弄清 CSS3 的 transition 和 animation

弄清 CSS3 的 transition 和 animation 原文:弄清 CSS3 的 transition 和 animation弄清 CSS3 的 transition 和 animation transition transition 屬性是transition-property,transition-duration,transition-timing-function,transition-delay的簡稱,用于設定一個元素的兩個狀…

【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 …

POJ 1286 Necklaces of Beads (Burnside定理,有限制型)

題目鏈接&#xff1a;http://vjudge.net/problem/viewProblem.action?id11117 就是利用每種等價情形算出置換節之后算組合數 #include <stdio.h> #include <cstring> #include <cstdlib> #include <algorithm> #include <cmath>using namespace…

全局搜索快捷鍵_Windows 自帶的聚合搜索來了,與 Mac 的 Spotlight 相比體驗如何?...

最近 Windows 10 推出了自帶的聚合搜索功能 PowerToys Run&#xff0c;取代了之前的 WinR。蘋果的 macOS 以人性化著稱&#xff0c;有幾個功能讓 Windows 用戶一直很羨慕&#xff0c;比如全局的聚合搜索工具 Spotlight。在任何界面 command空格&#xff0c;輸入關鍵字就能搜索電…