1.5-1數字金字塔
詳情:觀察下面的數字金字塔。
寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
這題我一樣用三種方式:普通dfs,記憶化dfs,和動態規劃
1.普通dfs:
#include #include using namespace std;
int a[1001][1001]=,n,cnt;
int dfs(int x,int y)
return max(dfs(x+1,y),dfs(x+1,y+1))+a[x][y];//上面+右上角
}int main()
} printf("%d",dfs(1,1));
return 0;
}
2.記憶化dfs
#include #include using namespace std;
int a[1001][1001]=,n,cnt,f[1001][1001]=;
int dfs(int x,int y)
return f[x][y];返回值
}int main() }
for(i=1;i<=n;i++)
f[n][i]=a[n][i];
printf("%d",dfs(1,1));
return 0;
}
3.動態規劃:
#include int main()
}for(j=1;j<=n;j++)
for(i=n-1;i>=1;i--)
else}}
printf("%d",a[1][1]);
return 0;
}
字母金字塔(類同數字金字塔)
問題描述 讓程式要求使用者輸入乙個大寫字母,使用巢狀迴圈產生像下面這樣的金字塔圖案 aaba abcba abcdba abcdecba 演算法分析 每行包括三個部分內容 若干個空格 正序排列的字母 倒序排列的字幕。使用乙個外部迴圈來處理行,在每乙個行中使用三個內部迴圈 乙個處理空格,乙個以公升序列...
數字金字塔
觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。7 3 8 8 1 0 2 7 4 4 4 5 2 6 5在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大 多組輸入資料 第乙個行包含 r...
數字金字塔
題目 題目描述 觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大 輸入輸出格式...