#115-【遞迴記憶化】圓環套圓環
題目描述
一個有趣的圓環套圓環函式被定義如下:
G(n)=n-G(G(n-1)) (n是正整數)
G(0)=0
請你計算出圓環函式的值。
輸入
一個非負整數n,n<=200。
輸出
一個正整數,即G(n)。
樣例輸入
3
樣例輸出
2
提示
事實上,如果不用記憶化的話......
#include <iostream> #define SIZE 2001 using namespace std; int res[SIZE]; bool visited[SIZE]; int g(int x) { if (!x) { return 0; } if (visited[x]) // 記憶化搜尋,比不加好很多. { return res[x]; } visited[x] = true; return res[x] = x - g(g(x - 1)); } int main(void) { int n; scanf("%d", &n); printf("%d", g(n)); return 0; }
相關推薦
#115-【遞迴記憶化】圓環套圓環
題目描述 一個有趣的圓環套圓環函式被定義如下: G(n)=n-G(G(n-1)) (n是正整數) G(0)=0 請你計算出圓環函式的值。 輸入 一個非負整數n,n<=200。 輸出 一個正整數,即G(n)。 樣例輸入 3 樣例輸出 2 提示 事實
Bailian1664 Placing apples【遞推+記憶化遞迴】
1664:Placing apples 總時間限制: 1000ms 記憶體限制: 65536kB 描述 We are going to place M same apples into N same plates. There could be some empty plates. How many meth
洛谷P1057傳球遊戲(逆向遞推遞迴+記憶化)
題目連結:https://www.luogu.org/problemnew/show/P1057 剛看到這道題,就是正向暴力遞迴暴力出所有情況,而且資料範圍這麼小,就寫了暴力遞迴,但是。。。tle好幾個點。。。 仔細跟著程式走了一遍樣例,發現暴力遞迴過程中好多點都重複計算,重複暴力了,So
洛谷P1192臺階問題(單向遞迴dfs,逆向遞迴記憶化)
題目連結:https://www.luogu.org/problemnew/show/P1192 題目很有價值,用搜索寫的話,可以加深對遞迴搜尋的理解。一般這樣的遞推可以用:dp或記憶化(我就用記憶化了 記憶化一般有遞推規律(遞迴好寫就在這),適用於遞推題!數範圍略大題!一般逆向遞迴dfs
ACM訓練 訓練方式 [簡單遞迴+記憶化搜尋]
題目 題目分析 整體程式碼 題目 題目描述 自行車選手在訓練時,需要圍繞著場地騎行N圈。給了使得訓練有效,可以一次把N全部騎完, 也可以分成若干次完成,但每次都比上一次騎的圈數要多,那
整數劃分問題(路徑輸出)【遞迴求解方式】
簡述 具體的函式可以參照 這個連結 程式碼 #include <iostream> using namespace std; #include <string> vo
遞迴+記憶化搜尋
邊界條件與遞迴方程是遞迴函式的兩個要素。 1)階乘函式 直接打板子: Int fac(int n) { If (n==0) return 1; Else return n*fac(n-1); } 這裡,第一句的if是邊界條件,第二句是遞迴方程。0的階乘為1,n的階乘為(n-
POJ2013 ZOJ2172 UVALive3055 Symmetric Order【遞迴+堆疊】
Time Limit:1000MS Memory Limit:30000K Total Submissions:14431 Accepted:8559 Description In your job at Albatross Circus Management
讓我用個經典小例子給你捋一捋 遞迴——記憶化搜尋——動態規劃 三者之間的關係
0 1 2 3 5 其實下面三個方法都是自下而上,只不過用遞迴的話,如果用二叉樹畫出遞迴的結構圖就會發現,出現了很多重複運算,比如說fib(100)=fib(99)+fib(98)。 記憶化搜尋通過新增一個列表容器來記錄已經計算過的內容,這樣就避免了重複運算,提高了效率,但是很明顯有空間換時
linux-find【遞迴搜尋檔名】
1 命令格式: $ find <指定目錄> <指定條件> <指定動作> 最常見示例:查詢檔名(忽略大小寫) $find . -iname sqlquery.java 1.1 <指定目錄>: 所要搜尋的目錄及其所有子目
原創題目 拼方頭 【組合數+記憶化優化】
其他 stdout 大於 longest 分享 isp 技術 nbsp his 題目: 有 n 條木棒,現在從中選 x 根,想要組成一個正 x-1 邊形,問有幾 種選法? 由於答案較大,輸出它 mod 19260817 的答案。 萬古神犇 hjr 秒了這道題,現在交給你做
UVa 10599【lis dp,記憶化搜索】
-- 位置 路徑 方案 cin ems 自然 ref 大小 UVa 10599 題意: 給出r*c的網格,其中有些格子裏面有垃圾,機器人從左上角移動到右下角,只能向右或向下移動。問機器人能清掃最多多少個含有垃圾的格子,有多少中方案,輸出其中一種方案的格子編號。格子編號是
leetcode 70. 爬樓梯【遞迴】【Easy】&& 劍指Offer面試題10 題目2:青蛙跳臺階問題
題目: 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1
Python小白學習之路(十三)—【遞迴呼叫】
一、遞迴呼叫定義 在函式內部,可以呼叫其他函式。 如果在呼叫一個函式的過程中直接或間接呼叫自身本身,則稱為遞迴呼叫 從某種意義上來說,遞迴呼叫可以實現無限迴圈 二、遞迴呼叫的特性 必須有一個明確的結束條件 每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少 遞迴效率不高,遞迴層次
【hdu 5728 PowMod】【數論】【尤拉函式】【尤拉降冪遞迴取模】【尤拉積性函式】
【連結】 http://acm.hdu.edu.cn/showproblem.php?pid=5728 【題意】 n是無平方因子的數 定義k=∑mi=1φ(i∗n) mod 1000000007,求K^k^k^k......%p 【思路】 先尤拉性質求出k
簡單的漢諾塔問題【遞迴】
題目連結:http://bailian.openjudge.cn/practice/4147/ 問題描述: 有三根杆子A,B,C。A杆上有N個(N>1)穿孔圓盤,盤的尺寸由下到上依次變小。要求按下列規則將所有圓盤移至C杆: 每次只能移動一個圓盤; 大盤不能疊在小盤上面。 提示:可將圓盤
算24【遞迴】
題目連結:https://cn.vjudge.net/problem/OpenJ_Bailian-2787 題目描述: 給出4個小於10個正整數,你可以使用加減乘除4種運算以及括號把這4個數連線起來得到一個表示式。現在的問題是,是否存在一種方式使得得到的表示式的結果等於24。 這
poj1664放蘋果【遞迴】
vj題目連結:https://cn.vjudge.net/problem/POJ-1664 題目描述 把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 Input 第一行是測試資料的數目t(0 &l
【洛谷P1228】地毯填補問題【分治】【遞迴】【DFS】
題目大意: 題目連結:https://www.luogu.org/problemnew/show/P1228 用L型地毯鋪滿一個邊長為2k2k的正方形,要求有一個特殊點不能鋪且其他每個點都僅被一個地
整數劃分問題【遞迴以及遞推求解方式】
簡述 先寫遞迴,有了遞迴之後,就換用遞推來加快速度。 演算法思路 q(n, m)表示,n這個整數被劃分,其中最大可能整數是m的所有劃分情況數目。明顯,所求,即為q(n,n) 當m>n時