DFS:C 小Y的難題(1)

解題心得:
1、在明確使用DFS之后一定要找到遞歸函數的出口、方向,以及遞歸的點(在某個情況下開始遞歸)(void 也可以return,但是沒有返回值)。遞歸時也要有遞歸的方向,最后都能夠達到遞歸的出口。
2、在DFS遞歸的出口處可以用一個數組來進行記錄最終的結果,雙向遞歸可以用一個二位數組來記錄結果。
3、在循環中,盡量不要多次使用一個變量(不然找錯找得你哭瞎雙眼。傷心。。。。。。)。
4、先找思路再寫程序,寫程序時小心變量是否用對,數組是否越界,變量是否初始化,特別實在循環中時。當循環出現多層的時候,檢查關鍵的步驟是否放對循環。
5、找錯找得哭瞎雙眼的時候一定要反思總結啊。

Description
最近小Y迷上了數學,總是在思考各種數學問題。有一天,他不小心把墨水灑在草稿紙上。他現在能看到的是“2?3?1?4”(?表示看不清的地方)。小Y的記憶力不錯,他知道:
1、每個?只會是“+”、“-”,“=”三個符號之一。
2、總共有且僅有一個“=”。
3、原式一定是一個等式。如“2+3-1=4”
現在他突然想知道,有多少種可能性,滿足上面3個要求。
Input
多組輸入。
每組第一行有一個數字n。表示小Y從左到右,一共可以看到n個數字。(2<=n<=15)
每組第二行有n個數字。分別表示這n個數字是什么。保證每個數字都是非負整數,且小于10^7。

Output
對于每組,輸出一行,這一行只有一個數字,表示有多少種可能性滿足題意。

Sample Input
Raw
4
2 3 1 4
4
1 1 1 1

Sample Output
Raw
2
6

Hint
數字間一定有且僅有一個符號,第一個數字前沒有符號。

#include<stdio.h>
int a[16],i,j,jie[2][30000],k,l,n,d[2],b,z;//命名混亂
void DFS(int n,int sum)
{if(n == k)//遞歸的出口{jie[l][d[l]++] = sum; //二維數組記錄最終的結果return ;? //void也可以return 但沒有值}DFS(n+1,sum + a[n+b]);?? //‘+’DFS(n+1,sum - a[n+b]);?? //‘-’
}
int main()
{int num;while(scanf("%d",&n)!=EOF){num = 0;for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n;i++){b = 0;k = i;l = 0;d[0] = 0;DFS(1,a[0]);b = i;k = n - i;l = 1;d[1] = 0;DFS(1,a[i]);for(z=0;z<d[0];z++)? //不要使用i,找瞎了雙眼{for(j=0;j<d[1];j++){if(jie[0][z] == jie[1][j])num++; //記錄個數}}}printf("%d\n",num);}
}

轉載于:https://www.cnblogs.com/GoldenFingers/p/9107397.html

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

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

相關文章

使用ActiveMQ支持Spring Integration路由

正如我在上 一篇 文章中所討論的那樣 &#xff0c;Spring Integration&#xff08;SI&#xff09; 是在Spring Framework之上構建的路由框架 &#xff0c;它使您可以使用經過驗證的企業集成模式來通過消息傳遞解決系統集成問題。 配置好SI并執行路由和中介邏輯后&#xff0c;您…

quagga源碼分析--路由信息處理zebra-rib

對于各個協議生成的路由信息的處理屬于quagga中非常重要的一個功能&#xff0c;如何在內核進行路由增加&#xff0c;更新&#xff0c;刪除是一個復雜的過程。 quagga在thread任務調度中加入了一種工作隊列&#xff0c;work_queue&#xff0c;與內核的工作隊列類似&#xff0c;是…

android 關閉藍牙打電話功能,Android藍牙開發【八】hfp接聽、掛斷電話

繼續研究hfp相關功能。藍牙耳機可以控制手機接聽、拒接、掛斷電話&#xff0c;撥打電話等功能。本文主要分析下起這些操作的大致流程。在系統應用Bluetooth中com_android_bluetooth.cpp提供了多個回調方法&#xff0c;由hardware、協議棧回調過來。藍牙耳機的一些控制命令都會發…

android在listview中放入從sdcard讀取的bitmap

重寫viewbinder public class viewbinder_bookmark implements SimpleAdapter.ViewBinder{Overridepublic boolean setViewValue(View view, Object data, String textRepresentation){if(view instanceof ImageView && data instanceof Bitmap){ImageView imageview(I…

將狀態機模式實現為流處理器

在我的上一個博客中&#xff0c;我說我真的以為某些“四人行”&#xff08;GOF&#xff09;模式已經過時了&#xff0c;如果不是過時的話肯定不受歡迎。 特別是我說過StateMachine不是那么有用&#xff0c;因為您通常會想到另一種更簡單的方式來執行您正在執行的事情&#xff0…

android 自定義actionbar,如何讓android的actionbar浮動且透明

如上圖所示&#xff0c;谷歌地圖的actionbar是透明的&#xff0c;且浮動在整個布局之上&#xff0c;沒有占用布局空間。其實要做到這樣的效果&#xff0c;我們首先想到的是兩個方面&#xff1a;1.將讓actionbar浮動起來。2.給actionbar一個背景&#xff0c;可以為顏色也可以為圖…

CentOS 7安裝redis及php擴展

安裝remi源 # wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7.rpm # sed -i -e "s/enabled1/enabled0/g" /etc/yum.repos.d/remi.repo 確認使用remi源時安裝的Redis版本。 安裝Redis 使用remi源yum安裝Redis。 # yum …

對Openshift上的Play Framework 2應用進行故障排除

Openshift故障排除 使用“ 自己動手”應用程序類型&#xff0c;您實際上可以有很大的自由度來支持幾乎可以在Linux機器上構建和運行的任何框架或服務器。 但是您必須做功課&#xff0c;并做一些研究。 因此&#xff0c;在本文中&#xff0c;我將向您展示一些我在使用Openshift和…

關于更換頭像的整個過程理解

之前我遇到一個問題&#xff0c;就是怎樣修改頭像&#xff0c;都沒有更改&#xff0c;后來把某個參數置為null&#xff0c;就解決了問題&#xff0c;但是知其然還要知其所以然&#xff0c;現在還是著重去梳理整個流程 頭像&#xff0c;需要關注的是3個變量&#xff1a; 本地地址…

Ajax與CustomErrors的尷尬

在ASP.NET程序中&#xff0c;為了給用戶顯示友好的錯誤信息&#xff0c;通常在web.config中進行如下的設置&#xff1a; <customErrors mode"RemoteOnly" defaultRedirect"/error/error.htm"> </customErrors> 但如果是一個ajax請求在服務端發…

JSF開發人員應該知道的5種有用方法

這篇文章的目的是總結一些JSF開發人員可以在日常工作中使用的便捷方法。 實用程序類是將所有方法放在一起的好地方。 我會稱此類為FacesAccessor。 第一種方法可能是最常用的方法。 它以給定名稱返回托管bean。 必須按faces-config.xml或注釋注冊該bean。 注入是好的&#xff0…

android項目編碼規范,Android 項目規范

Android 項目規范本文檔的目的是定義項目規范。這些應遵循整個 Android 項目以幫助我們保持整潔和統一的代碼庫。 &#x1f642;

Java創建WebService服務及客戶端實現

簡介 WebService是一種服務的提供方式&#xff0c;通過WebService&#xff0c;不同應用間相互間調用變的很方便&#xff0c;網絡上有很多常用的WebService服務&#xff0c;如&#xff1a;http://developer.51cto.com/art/200908/147125.htm&#xff0c;不同的語言平臺對…

01-17權限管理

管理頁面&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equi…

Java靜態方法可能會產生代碼異味

代碼氣味的定義 &#xff08;來自維基百科&#xff09;&#xff1a; “程序源代碼中任何可能表明存在更深層問題的癥狀。” 在Java中&#xff0c; 靜態方法允許您在“類范圍”內執行代碼&#xff0c;而不是像成員方法這樣的實例范圍。 這意味著&#xff0c;它們依賴于類級別的變…

android json 解析圖片,JSON解析并獲取android中的圖像

我想解析包含字符串和圖像的JSON對象。我的代碼正在工作&#xff0c;但它加載圖像太慢。我想加載另一個asynctask或服務的圖像&#xff0c;以減少加載時間。我怎樣才能做到這一點&#xff1f;哪一個是最好的方法使用asynctask或服務&#xff1f;這里是我的代碼JSON解析并獲取an…

Node Express4.x 片段視圖 partials

1.在Express 4.x使用片段視圖&#xff0c;需要引入partials模塊 步驟&#xff1a; 1.在全局中安裝express-partials模塊&#xff1a; 2.在本地模塊中安裝express-partials,將模塊安裝到package.json中&#xff1a; 3.在入口文件(如&#xff1a;app.js)中引入模塊&#xff1a; v…

bzoj1690:[Usaco2007 Dec]奶牛的旅行(分數規劃+spfa判負環)

PS:此題數組名皆引用&#xff1a;戳我 題目大意&#xff1a;有n個點m條有向邊的圖&#xff0c;邊上有花費&#xff0c;點上有收益&#xff0c;點可以多次經過&#xff0c;但是收益不疊加&#xff0c;邊也可以多次經過&#xff0c;但是費用疊加。求一個環使得收益和/花費和最大&…

安全密碼存儲–請勿做的事和Java示例

安全存儲密碼的重要性 作為軟件開發人員&#xff0c;我們最重要的職責之一就是保護用戶的個人信息。 沒有我們應用程序的技術知識&#xff0c;用戶別無選擇&#xff0c;只能相信我們正在履行這一責任。 令人遺憾的是&#xff0c;在密碼方面&#xff0c;軟件開發社區的記錄不一。…

紅米note4x Android7,紅米Note4X能升級安卓7.0嗎?紅米Note4X如何升級Android7.0?

歡迎來到PPL網站的行業資訊知識分類&#xff0c;你現在觀看的這篇文章要和大家分享的是關于紅米Note4X能升級安卓7.0嗎&#xff1f;紅米Note4X如何升級Android7.0&#xff1f;的一些相關內容&#xff0c;希望大家能夠感興趣&#xff0c;并且希望我們能夠幫助到你&#xff01;在…