藍橋訓練系統 基礎訓練 非VIP題

2021-10-21 20:09:43 字數 3799 閱讀 7789

#include

using

namespace

::std;

int a[

205]

;int

main()

先將十六進製制轉換成二進位制再把二進位制轉換成八進位制, 十六進製制一位數對應二進位制四位數, 二進位制三位數對應八進位制一位數,

注意, 我們讀取的十六進製制數是乙個字串, 不能對字元型別的數字直接進行計算, 計算機會預設使用ascii碼計算,'0' ~ '9'對應的ascii碼是48 ~ 57, 所以可以通過char - 48將其處理成我們想要的數字進行計算

#include

using

namespace

::std;

const

int maxlen =

1e5+5;

char s[maxlen]

;int b[maxlen *4]

, e[maxlen *2]

;int

main()

}//二進位制->八進位制

int j =0;

int i =4*

strlen

(s +1)

;for

(; i >=

3; i -=3

)if(i >=2)

e[++j]

= b[i]

+ b[i -1]

*2;else

if(i >=1)

e[++j]

= b[i];if

(e[j]==0

)--j;

for(

int i = j; i >=1;

--i)

cout << e[i]

; cout << endl;

}return0;

}

#include

using

namespace

::std;

#define ll long long

char hexnum[10]

;ll ans;

intmain()

cout << ans;

return0;

}

輸出為負數時要敏銳地察覺是不是結果超出了int的範圍

每一次都要考慮輸入/輸出是0的情況,一般測試點1都是0

#include

using

namespace

::std;

#define ll long long

ll a;

stack<

char

> ans;

intmain()

while

(a >0)

while

(!ans.

empty()

)return0;

}

我的思路是列舉每個數, 把每個數字數倒置得出的數如果和原數相等,那麼這個數就是回文數

五位數六位數這麼搞確實不優雅

#include

using

namespace

::std;

intmain()

if(hnum == i && tmp == n)

cout << i << endl;

}//六位數

for(

int i =

100000

; i <=

999999

;++i)

if(hnum == i && tmp == n)

cout << i << endl;

}return0;

}

#include

using

namespace

::std;

intmain()

if(hnum == i)

cout << i << endl;

}return0;

}

#include

using

namespace

::std;

intmain()

if(sxh == i)

cout << i << endl;

}return0;

}

邊界dp[1][1] = 1

狀態方程dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]

#include

using

namespace

::std;

int dp[40]

[40];

intmain()

dp[i]

[i]=1;

cout << dp[i]

[i];

if(i < n)

cout << endl;

}return0;

}

#include

using

namespace

::std;

int num[

10005];

intmain()

}if(flag ==0)

cout <<-1

;return0;

}

max_element(begin, end), 求區間[begin, end)的最大值

min_element(begin, end), 求區間[begin, end)的最小值

accmulate(begin, end, 0),求區間[begin, end)的和, 這裡0是和的初值

#include

using

namespace

::std;

int num[

10005];

intmain()

#include

using

namespace

::std;

int p[

1000005];

intmain()

if(n <3)

cout <<1;

else

cout << p[n]

;return0;

}

數太大, 不能先加再求模, 所以可以打表累加每一項的餘數, 非餘數部分對求模沒有影響, 可以直接忽略

#include

using

namespace

::std;

char dp[30]

[30];

intmain()

for(

int i =

1; i <= n;

++i)

return0;

}

觀察影象,沿對角線把影象分成兩半, 分兩種情況找到一些規律

藍橋杯 基礎訓練

include include include include include algorithm include queue define inf 100000000 using namespace std char h 100002 b 400002 e 400002 void solve fo...

藍橋杯 基礎訓練 部分

basic 1 閏年判斷 基礎訓練 basic 1 閏年判斷 條件判斷 include using namespace std intmain else else else cin year return0 basic 2 01串 基礎訓練 basic 2 01字串 迴圈 include int m...

藍橋杯 基礎訓練 一)

資源限制 問題描述 年份是4的倍數而不是100的倍數 年份是400的倍數。輸入格式 輸出格式 樣例輸入 樣例輸出 樣例輸入 樣例輸出 資料規模與約定 ac include intmain 資源限制 問題描述 對於長度為5位的乙個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是 請按從小...