藍橋杯複習筆記
阿新 • • 發佈:2018-11-21
BASIC 3 字母圖形
這一題可以簡化思路,規律從兩個迴圈中獲得(i - j)
BASIC 10 十進位制轉16進位制
十進位制轉x進位制的題目慣用模板,注意如果要轉的進位制超過10,要考慮字母的情況。
if (a == 0)
{
cout << "0";
}
else
{
while (a != 0)
{
if (a % x >= 10)
b[ i++] = a % 16 + 'A' -10;
else
b[i++] = a % 16 + '0';
a = a / 16;
}
}
BASIC 15 字串對比
大小寫轉換
tolower() toupper()
BASIC 18 矩形面積交
判斷兩個舉行是否重合,假設x1,y1是矩形1的左下角,x2,y2是矩形1的右上角。x3,y3是矩形2的左下角,x4,y4是矩形2的右上角。
if((x2 < x3 && x1 < x3) || (y2 < y3 && y1 < y3) || (x4 < x1 && x3 > x1) || (y4 < y1 && y3 < y1))
如果這個要是滿足了,那麼說明就不重合。
算重合面積,只要把兩個x軸上的中間值,y軸上的中間值相減、相乘即可。
BASIC 22 FJ的字串
掌握遞推,要先寫出公式。
f(n) = A; n = 1; f(n) = f(n - 1) + (char)(n + 'A' - 1) + f(n - 1); n > 1
string dfs(int n)
{
if(n == 1) {
return "A";
} else {
return dfs(n - 1) + (char)(n + 'A' - 1) + dfs(n - 1);
}
}
BASIC 25 回形取數
把訪問過的點標記成-1,這樣遇到-1就轉彎
BASIC 27 2n皇后問題
先把算出n皇后的可能,每次條件已成立,把這n個皇后算成障礙物,再給來一遍bfs。
BASIC 29 高精度加法
加法:先把兩個數都倒過來一下,這樣方便計算。
引申乘法:
https://blog.csdn.net/FGY_u/article/details/83999413
ALGO 4 節點選擇
用樹形二叉樹進行解題,樹形二叉樹更詳細的解釋見
https://blog.csdn.net/txl199106/article/details/45373507
ALGO 5 最短路徑 ??
無負邊,可以用迪傑斯特拉演算法。
存在負邊的話,用Floyd或者SPFA。
ALGO 9 操作格子
線性樹
ALGO 11 瓷磚鋪放
用遞迴的時候記得要解除前一狀態。
這題用動態規劃的方法也可以,關鍵是要弄清楚其中的動態方程。
v[i] = v[i-1] + v[i-2];
後一個等於前一個(v[i - 1] + v[i - 2] )是因為當前等於前一個長度加1,前前個長度加2.
複習了迪傑斯特拉演算法
PAT_A Public Bike Management