poj1163(數(shù)字三角形)

問題描述

有一個由非負(fù)整數(shù)組成的三角形,第一行只有一個數(shù)担映,除了最下行之外每個數(shù)的左下方和右下方各有一個數(shù)废士,如下圖。從第一行的數(shù)開始蝇完,每次可以往左下或右下走一格官硝,直到走到最下行,把沿途經(jīng)過的數(shù)全部加起來短蜕。如何走才能使得這個和盡量大氢架,輸出最大和。

Paste_Image.png

如:


Paste_Image.png

這是一個數(shù)字三角形問題朋魔,可以用記憶化搜索岖研,也可以用遞推。
首先由題意可以得到狀態(tài)轉(zhuǎn)移方程:d[i][j] = tri[i][j] + max(d[i + 1][j], d[i + 1][j + 1]);d[i][j] 為從 tri[i][j] 出發(fā)時(包括 tri[i][j])能得到的最大和警检。
記憶化搜索

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

const int MAX_N = 100 + 5;
int d[MAX_N][MAX_N];
int tri[MAX_N][MAX_N];//三角形的值
int n;

int solve(int i, int j) {
    if (d[i][j] >= 0) return d[i][j];
    return d[i][j] = tri[i][j] + (i == n - 1 ? 0 : max(solve(i + 1, j), solve(i + 1, j + 1)));
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    memset(d, -1, sizeof(d));//為了防止某個值被重復(fù)計算
    cin >> n;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j <= i; ++j)
            cin >> tri[i][j];
    }
    solve(0, 0);
    cout << d[0][0] << endl;
}```
**遞推**

include <iostream>

include <algorithm>

using namespace std;

const int MAX_N = 100 + 5;
int d[MAX_N][MAX_N];
int tri[MAX_N][MAX_N];//簡單一點可以不要這個數(shù)字孙援,此處為了說明問題

void solve(int n) {
for (int j = 0; j <= n - 1; ++j)
d[n - 1][j] = tri[n - 1][j];//不寫tri[i][j]時,就不需要這一步了
for (int i = n - 2; i >= 0; --i) {
for (int j = 0; j <= i; ++j)
d[i][j] = tri[i][j] + max(d[i + 1][j], d[i + 1][j + 1]);
//d[i][j] += max(d[i + 1][j], d[i + 1][j + 1]);//不用tri[i][j]時
}
}

int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; ++j)
cin >> tri[i][j];//cin >> d[i][j];
}
solve(n);
cout << d[0][0] << endl;
}```
這兩種方法的時間復(fù)雜度都是o(n * n)扇雕。用遞推計算的時候需要注意邊界問題和計算順序拓售。采用記憶化搜索時,不必事先確定各狀態(tài)的計算順序镶奉,但需要記錄每個狀態(tài)“是否已經(jīng)計算過”础淤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市腮鞍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌莹菱,老刑警劉巖移国,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異道伟,居然都是意外死亡迹缀,警方通過查閱死者的電腦和手機使碾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祝懂,“玉大人票摇,你說我怎么就攤上這事⊙馀睿” “怎么了矢门?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灰蛙。 經(jīng)常有香客問我祟剔,道長,這世上最難降的妖魔是什么摩梧? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任物延,我火速辦了婚禮,結(jié)果婚禮上仅父,老公的妹妹穿的比我還像新娘叛薯。我一直安慰自己,他們只是感情好笙纤,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布耗溜。 她就那樣靜靜地躺著,像睡著了一般粪糙。 火紅的嫁衣襯著肌膚如雪强霎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天蓉冈,我揣著相機與錄音城舞,去河邊找鬼。 笑死寞酿,一個胖子當(dāng)著我的面吹牛家夺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伐弹,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼拉馋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了惨好?” 一聲冷哼從身側(cè)響起煌茴,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎日川,沒想到半個月后蔓腐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡龄句,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年回论,在試婚紗的時候發(fā)現(xiàn)自己被綠了散罕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡傀蓉,死狀恐怖欧漱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情葬燎,我是刑警寧澤误甚,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站萨蚕,受9級特大地震影響靶草,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岳遥,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一奕翔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浩蓉,春花似錦派继、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至认轨,卻和暖如春绅络,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嘁字。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工恩急, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纪蜒。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓衷恭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纯续。 傳聞我的和親對象是個殘疾皇子随珠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • thiele插值算法 1點插值算法 function [C,c]=thiele(X,Y,Z)%X為插值點橫坐標(biāo),Y...
    00crazy00閱讀 1,996評論 0 4
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗猬错。 張土汪:刷leetcod...
    土汪閱讀 12,748評論 0 33
  • 01 整整十年沒有睡過熱炕頭了倦炒,夜夜夢回显沈,奶奶家的熱炕頭依然是我的專屬領(lǐng)地,沒有人能夠搶走析校,無論是姑姑家的哥哥姐姐...
    花隨鶯愿閱讀 307評論 2 4
  • 我以為我是如來佛祖 其實我只不過是五指山 我縱然能困住你五百年 可終有一天 你還是會等來唐三藏 而我會變成一堆塵埃...
    簡村小吹閱讀 468評論 20 35
  • 樹說:人真的很可憐智玻,被風(fēng)吹的到處跑遂唧,因為他們沒有根。今天看到朋友發(fā)的這句話吊奢,深有感觸盖彭。我現(xiàn)在越來越覺得,一個人的內(nèi)...
    裳飄一閱讀 106評論 0 0