1251 括號(遞歸小練)

?時間限制: 1 s
?空間限制: 128000 KB
?題目等級 : 黃金 Gold
題目描述?Description

    計算乘法時,我們可以添加括號,來改變相乘的順序,比如計算  ?  ?  ?  ?  X1,?X2,?X3,?X4,?…,?XN的積,可以

?  (X1(X2(X3(X4(...(XN-1*XN)...)))))

?  ?:::

?  :::

?  (((...(((X1*X2)X3)X4)...)XN-1)XN)

?  你的任務是編程求出所有這樣的添括號的方案。

輸入描述?Input Description

    輸入文件第一行是一個數n(1<=n<=10),表示有n個變量,之后N行每行一個變量的名字。

輸出描述?Output Description

    輸出所有的添加括號的方案。注意:單個字符不要加括號,兩個字符相乘中間要有乘號。

樣例輸入?Sample Input

4

North?

South?

East?

West

樣例輸出?Sample Output

(North(South(East*West)))

(North((South*East)West))

((North*South)(East*West))

((North(South*East))West)

(((North*South)East)West)

數據范圍及提示?Data Size & Hint

分類標簽?Tags?點此展開?

?

So,具體思路見題解,好了不多說了,上題解:

?

#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<string>ans[12][12]; 
string str[11];
int n;
void dfs(int l,int r)  // l,r單詞的分割數目,初始還沒求得所要的串,結果為空
{if(ans[l][r].size())  // 存放第一個 首單詞 位置為 l 尾單詞位置為r的 單詞串return;if(l==r)  // 僅有單個單詞,放到對應的位置上
        ans[l][l].push_back(str[l]);else{for(int i=l;i<r;i++){dfs(l,i);dfs(i+1,r);  // 遞歸求解,各左右子串的劃分形式。int sl=ans[l][i].size(),sr=ans[i+1][r].size();for (int j=0;j<sl;j++){  // 進行連接運算for (int k=0; k<sr;k++){string s;s ="("+ans[l][i][j];if (r-l==1) //
                        s+="*";  // 做連接運算時加*號s+=(ans[i+1][r][k]+")");ans[l][r].push_back(s);    // 存入一種結果
                }}}}
}
int main() 
{cin>>n;for (int i=1;i<=n;i++)cin>>str[i];dfs(1,n);int m=ans[1][n].size();for (int i=0;i<m;i++)cout<<ans[1][n][i]<<endl; // 輸出所有可能結果return 0;
}
如果對你有所幫助,別忘了加好評哦;么么噠!!下次見!88

轉載于:https://www.cnblogs.com/cangT-Tlan/p/6159034.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373289.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

zabbix_agentd.conf配置文件詳解

Aliaskey的別名&#xff0c;例如 Aliasttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]),,,,\1]&#xff0c; 或者ttlsa的用戶ID。你可以使用key&#xff1a;vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]),,,,\1]&#xff0c;也可以使用ttlsa.userid。備注: 別名不…

在運行時修補Java

本文將重點介紹如何解決與第三方庫相關的問題 不能被規避 難以排除/繞過/替換 只需不提供錯誤修正 在這種情況下&#xff0c;解決問題仍然是一項艱巨的任務。 作為這種情況的誘因&#xff0c;請考慮對“哈希索引”數據結構的攻擊&#xff0c;例如java.util.Hashtable和java…

php return直接輸出,PHP中return用法詳細解讀

原標題&#xff1a;PHP中return用法詳細解讀在大部分編程語言中&#xff0c;return關鍵字可以將函數的執行結果返回&#xff0c;PHP中return的用法也大同小異&#xff0c;對初學者來說&#xff0c;掌握PHP中return的用法也是學習PHP的一個開始。首先&#xff0c;它的意思就是返…

并行執行,沒用到過,寫到這里免得搞忘

/// <summary>/// /// </summary>class Program{static void Main(string[] args){simultaneous();Console.ReadKey();}static void simultaneous(){//盡可能并行執行提供的每個操作Parallel.Invoke(() > ComplexMethod("1"),() > ComplexMethod(&…

UIViewController生命周期

UIViewController生命周期 UIViewController生命周期 posted on 2016-04-07 20:15 相而勿絕 閱讀(...) 評論(...) 編輯 收藏 轉載于:https://www.cnblogs.com/fmdxiangdui/p/5365249.html

Spring的REST分頁

這是有關使用Spring 3.1和Spring Security 3.1和基于Java的配置來建立安全的RESTful Web Service的系列文章的第七篇。 本文將重點介紹RESTful Web服務中的分頁實現 。 REST with Spring系列&#xff1a; 第1部分– 使用Spring 3.1和基于Java的配置引導Web應用程序 第2部分–…

眾籌源碼 php,助創cms眾籌源碼系統v1.0

什么是助創cms眾籌系統?使用“預約團購”的眾籌方式給自己的創意爭取大家的關注和支持&#xff0c;是近年來非常火熱的一種融資模式&#xff0c;助創cms眾籌系統可以10分鐘幫你打造一個和京東眾籌一樣的平臺&#xff0c;包含產品眾籌和公益眾籌兩個部分&#xff0c;可以直接拿…

Linq to SQL 的增刪改查操作

Linq&#xff0c;全稱Language Integrated Query&#xff0c;作為C#3.0新語法&#xff0c;是C#語言的一個擴展&#xff0c;可以將數據查詢直接集成到編程語言本身中。 Linq表達式和SQL語句差不多&#xff0c;說白了就是顛倒sql語法&#xff0c; from where select ...&#xff…

擴展您的JPA POJO

可擴展性是許多體系結構的重要特征。 它衡量是否容易&#xff08;或困難&#xff09; 它是在不影響現有核心系統功能的情況下添加或更改功能。 讓我們舉一個簡單的例子。 假設您的公司擁有一個核心產品來跟蹤體育俱樂部中的所有用戶。 在您的產品體系結構中&#xff0c;您有一個…

web框架--flask

flask介紹Flask是一個基于Python開發并且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架&#xff0c;對于Werkzeug本質是Socket服務端&#xff0c;其用于接收http請求并對請求進行預處理&#xff0c;然后觸發Flask框架&#xff0c;開發人員基于Flask框架提供的功能對請求進行…

php spider shell,ScrapyShell使用

Scrapy ShellScrapy終端是一個交互終端&#xff0c;我們可以在未啟動spider的情況下嘗試及調試代碼&#xff0c;也可以用來測試XPath或CSS表達式&#xff0c;查看他們的工作方式&#xff0c;方便我們爬取的網頁中提取的數據。如果安裝了 IPython &#xff0c;Scrapy終端將使用 …

69 個經典 Spring 面試題和答案

Spring 概述 什么是spring?Spring 是個java企業級應用的開源開發框架。Spring主要用來開發Java應用&#xff0c;但是有些擴展是針對構建J2EE平臺的web應用。Spring 框架目標是簡化Java企業級應用開發&#xff0c;并通過POJO為基礎的編程模型促進良好的編程習慣。使用Spring框架…

高性能MySql

1、索引是對DB優化最有效的方式 varchar(10)定義的是字符的個數&#xff0c;如果是utf-8的話&#xff0c;最大是3X10個字節 二、索引類型 1、MySql的索引是在存儲引擎層實現的&#xff0c;各個存儲引擎的的索引方式也是不同的 2、B-Tree索引 MyISAM索引通過數據的物理位置引用被…

Java Swing井字游戲

大家好&#xff01; 哇&#xff0c;自從我在這里發布了東西以來已經有一段時間了&#xff01; 我必須說我真的很想寫東西&#xff0c;而且我保證我不會再陷入“作家的障礙”。 希望 ..最近兩個月發生了很多事情&#xff0c;我有很多話要說。 但是在這篇文章中&#xff0c;我只是…

Java小青蛙跳臺街,算法-青蛙跳臺階詳解

/*[跳臺階][題目]一只青蛙一次可以跳上1級臺階&#xff0c;也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。[解析]與斐波那契數列的求解過程類似。典型的動態規劃問題。對于第 n 級臺階&#xff0c;我們可以從第 n-1 級臺階一步到達&#xff0c;也可以從第 n-2 級…

apache服務器配置Net的實踐

前置&#xff1a; 在xp系統中&#xff0c;打補丁之類或啥子操作引起或多或少的問題&#xff0c;最終導致iis不能使用&#xff1b; 不想裝系統...忍著... 最近突發事件導致&#xff0c;需要摸一下apache服務器處理&#xff0c;好吧&#xff0c;那就搜索下吧..... 目標&#xff1…

TestNG或JUnit

多年以來&#xff0c;無論何時使用Java代碼進行單元測試&#xff0c;我始終會回到TestNG。 每當我拿起TestNG時&#xff0c;人們都問我為什么要繼續使用TestNG&#xff0c;尤其是默認開發環境&#xff08;例如Eclipse或Maven&#xff09;提供的JUnit時。 繼續進行同樣的戰斗&am…

event php,PHP event 事件機制

/** PHP 事件機制*/class baseClass{private $_e;public function __set($name,$value){if( strncasecmp($name,"on",2) 0 ){if(!isset($this->_e[$name]))$this->_e[$name] array();return array_push($this->_e[$name] , $value);}}public function __g…

Android JNI編程(五)——C語言的靜態內存分配、動態內存分配、動態創建數組...

版權聲明&#xff1a;本文出自阿鐘的博客&#xff0c;轉載請注明出處:http://blog.csdn.net/a_zhon/。 目錄(?)[] 一&#xff1a;什么是靜態內存什么又是動態內存呢&#xff1f; 靜態內存&#xff1a;是指在程序開始運行時由編譯器分配的內存&#xff0c;它的分配是在程序開始…

Visual Studio-C#-20160411

函數的四個要素包括&#xff1a;名稱&#xff0c;輸入&#xff0c;輸出&#xff0c;加工 注釋的方式&#xff1a;//只注釋一行&#xff1b;/**/注釋一段區域&#xff1b; namespace ConsoleApplication6 ---------//命名空間{ class Program ---------------------------//類…