經典演算法50例 P1

2021-10-04 10:36:10 字數 1987 閱讀 4495

1.巴斯卡三角形

也就是有以下一些特點:把他看成乙個正方形但只有右下部分。1.第一列全是1 2,對角線上全是1

3.對於其他位置 等於他的上一行對應列和上一行上一列的值相加。

也就是dp[i][j]=dp[i-1][[j+dp[i-1][j-1]

#include

#include

#include

#include

#include

#include

using namespace std;

//巴斯卡三角形,假設就是給乙個n作為規模

intmain()

}//然後開始輸出

for(i=

0;i)for

(j=0

;j<=i;j++

)else

}}

三色旗問題:使用到了陣列指標,分成三類,分別是藍色的指標,白色的指標,和紅色的指標。

並且這些有三種情況,以白色的指標為主,當乙個值是白色的時,則指標數加一,如果是藍色的話,那就和藍色的位置交換,並且將藍色的位置和白色的位置都加一,最後如果是紅色的話,因為紅色的指標是在最後 所以是指標減一,並且白色位置加一,然後將對應位置換位。

//三色旗,主要就是指標的作用

//再寫乙個用來交換的

char str[5]

=;void

swap

(int x,

int y)

intmain()

if(str[flagw]

=='r'

&&flagw

}//開始輸出

for(i=

0;i)printf

("%c"

,str[i]);

}老鼠走迷宮(-)應該是直接使用dfs,來判斷是否有路

和本題無關,但是就是乙個dfs的演算法,會有乙個判斷函式,用來判斷這個點能不能用,然後有兩個陣列來指示前後左右,最後就是dfs(map,x,y)判斷前後左右是否可以,直到走到對應的位置,return true

騎士走鍵盤

這道題的核心遞迴思想引數有x的起點,y的起點,總共走了幾步

#include

#include

#include

#include

#include

#include

using namespace std;

//首先是乙個八乘八的陣列,表示這個地圖

int map[8]

[8];

int stepx[8]

=;int stepy[8]

=;//這代表能走的方向

int i;

//然後開始寫深度遍歷

bool dfs

(int starx,

int stary,

int index)

} map[starx]

[stary]=0

;return false;

}int

main()

(p 1 和 ( p 1)的區別

內容會持續更新,有錯誤的地方歡迎指正,謝謝 例1 下面程式的輸出結果是 include void main int p 3 p n cout 0 0 p 0 1 p 2 解析 p是乙個指標,乙個指向長度為3的陣列的指標。直接在p上偏移就是行,在 p上偏移就是列。比如 p 1 等價於p 1 0 等於4...

編譯原理P1

1.高階語言 過程式語言 fortran pascal c 函式式語言 lisp 邏輯式語言 prolog 物件式語言 c 2.低階語言 面向機器的語言 組合語言 機器語言 翻譯 是指在計算機中放置乙個能由計算機直接執行的翻譯程式,它以某一種程式語言 源語言 所編寫的程式 源程式 作為翻譯或加工的物...

Flask WTF 入門使用P1

flask wtf為您的flask應用程式整合了wtforms,具體例子如下 from flask wtf import flaskform from wtforms import stringfield from wtforms.validators import datarequired cla...