藍橋杯第十一屆軟體類校內模擬賽題解(上)

2022-05-02 05:24:10 字數 2270 閱讀 5020

一、在計算機儲存中,15.125gb是多少mb?

\(15.125gb * 1024 = 15488mb\)

二、1200000有多少個約數(只計算正約數)。

寫個python指令碼算一下得 \(96\)

cnt=0

for i in range(1,1200001):

if not 1200000%i:

cnt=cnt+1

print(cnt)

三、一棵包含有2019個結點的樹,最多包含多少個葉結點?

昊神告訴我這叫星圖,除父節點外全部是同輩的葉子節點,答案 \(2018\)。

四、在1至2019中,有多少個數的數字中包含數字9?

注意,有的數中的數字中包含多個9,這個數隻算一次。例如,1999這個數包含數字9,在計算只是算乙個數。

寫個程式算一下即可,答案 \(544\)

for (int i=1;i<=2019;i++) 

x/=10;

}if (fl) sum++;

}

問題描述

小明對類似於 \(hello\) 這種單詞非常感興趣,這種單詞可以正好分為四段,第一段由乙個或多個子音字母組成,第二段由乙個或多個母音字母組成,第三段由乙個或多個子音字母組成,第四段由乙個或多個母音字母組成。

給定乙個單詞,請判斷這個單詞是否也是這種單詞,如果是請輸出yes,否則請輸出no。

母音字母包括 \(a, e, i, o, u\) ,共五個,其他均為子音字母。

輸入格式

輸入一行,包含乙個單詞,單詞中只包含小寫英文本母。

輸出格式

輸出答案,或者為 \(yes\) ,或者為 \(no\) 。

評測用例規模與約定

對於所有評測用例,單詞中的字母個數不超過 \(100\)

模擬題意即可,四段分開判斷,遇到連續的母音/子音就不斷讀入。

\(f\) 陣列標誌對應段的合法性,要注意最後還要判斷一下尾部的合法性。

**如下:

#include using namespace std;

char str[233];

int f[4],pos,len;

inline bool isy(char x)

int main()

if (f1&&f2) ans++;

} printf("%d",ans);

return 0;

}

當然也可以用 \(st\) 表把複雜度優化為 \(o(nlogn)\)。

**如下:

#include #define maxn 10007

#define inf 0x3f3f3f3f

using namespace std;

int n,ans,t1[maxn][20],t2[maxn][20];

inline void init()

最優是 \(o(n)\) 的,用兩個陣列分別從頭和尾依次記錄一下當前最小或最大值即可,也比較簡單就不補**了。(感謝@11eyes 提醒)。

問題描述

乙個正整數如果任何乙個數字不大於右邊相鄰的數字,則稱為乙個數字遞增的數,例如 \(1135\) 是乙個數字遞增的數,而 \(1024\) 不是乙個數字遞增的數。

給定正整數 \(n\) ,請問在整數 \(1\) 至 \(n\) 中有多少個數字遞增的數?

輸入格式

輸入的第一行包含乙個整數 \(n\) 。

輸出格式

輸出一行包含乙個整數,表示答案。

評測用例規模與約定

對於 \(40\%\) 的評測用例,\(1 <= n <= 1000\)。

對於 \(80\%\) 的評測用例,\(1 <= n <= 100000\)。

對於所有評測用例,\(1 <= n <= 1000000\)。

\(40\) 分的做法就是在 \((1,n)\) 裡列舉每乙個數,然後判斷每位是否遞增。

但是直接構造數字遞增的數顯然是更優的,這裡用遞迴進行逐位構造。

邊界條件:\(num>n\) 或 \(i=9\)

(我也不知道 \(80\) 分的範圍有啥用

**如下:

#include int n,ans=0;

using namespace std;

void dfs(int num)

int main()

下**藍橋杯第十一屆軟體類校內模擬賽題解(下)

第十一屆藍橋杯校內模擬賽 種草問題

小明有一塊空地,他將這塊空地劃分為n行m列的小塊,每行和每列的長度都為1。小明選了其中的一些小塊空地,種上了草,其他小塊仍然保持是空地。這些草長得很快,每個月,草都會向外長出一些,如果乙個小塊種了草,則它將向自己的上,下 左 右四小塊空地擴充套件,這四小塊空地都將變為有草的小塊。請告訴小明,k個月後...

第十一屆藍橋杯校內模擬賽部分題解

include using namespace std intmain include using namespace std intmain cout n n0 n1 n2,為使葉子節點數 n0 最多,必須n1最小,設為0,而n0 n2 1,得n2 2019 1 2 1009,所以n0 1010。...

第十一屆 藍橋杯校內模擬賽 自己記錄

1200000有多少個約數 只計算正約數 答案 96在計算機儲存中,15.125gb是多少mb?答案 15488在1至2019中,有多少個數的數字中包含數字9?答案 544一棵包含有2019個結點的樹,最多包含多少個葉結點?答案 2018乙個正整數如果任何乙個數字不大於右邊相鄰的數字,則稱為乙個數字...