2020年第十屆C/C++ B組第二場藍橋杯省賽真題
這裡是藍橋杯歷年的題目專欄,將會陸續更新將往年真題以及解答釋出出來,歡迎各位小夥伴關注我吖,你們的點贊關注就是給我最好的動力!!!
每天更新一屆真題,敬請期待
目錄
第一題:門牌製作
題目描述
小藍要為一條街的住戶製作門牌號。這條街一共有2020位住戶,門牌號從1到2020編號。小藍製作門牌的方法是先製作0到9這幾個數字字元,最後根據需要將字元貼上到門牌上,例如門牌1017需要依次貼上字元1、0、1、7,即需要1個字元0,2個字元1,1個字元7。請問要製作所有的1到2020號門牌,總共需要多少個字元2?
題目程式碼
第二題:既約分數
題目描述
如果一個分數的分子和分母的最大公約數是1,這個分數稱為既約分數。例如,3/4,5/2,1/8,7/1都是既約分數。請問,有多少個既約分數,分子和分母都是1到2020之間的整數(包括1和2020)
題目分析
題目程式碼
第三題:蛇形填數
題目描述
如下圖所示,小明用從1開始的正整數“蛇形”填充無限大的矩陣。容易看出矩陣第二行第二列中的數是5。請你計算矩陣中第20行第20列的數是多少?
題目分析
題目程式碼
第四題:跑步鍛鍊
題目描述
小藍每天都鍛鍊身體。正常情況下,小藍每天跑1千米。如果某天是週一或者月初(1日),為了激勵自己,小藍要跑2千米。如果同時是週一或月初,小藍也是跑2千米。小藍跑步已經堅持了很長時間,從2000年1月1日週六(含)到2020年10月1日週四(含)。請問這段時間小藍總共跑步多少千米?
題目程式碼
第五題:七段碼
題目描述
小藍要用七段碼數碼管來表示一種特殊的文字。
七段碼上圖給出了七段碼數碼管的一個圖示,數碼管中一共有 7 段可以發光的二極體,分別標記為 a, b, c, d, e, f, g。小藍要選擇一部分二極體(至少要有一個)發光來表達字元。在設計字元的表達時,要求所有發光的二極體是連成一片的。
例如:b 發光,其他二極體不發光可以用來表達一種字元。
例如:c 發光,其他二極體不發光可以用來表達一種字元。這種方案與上一行的方案可以用來表示不同的字元,儘管看上去比較相似。
例如:a, b, c, d, e 發光,f, g 不發光可以用來表達一種字元。
例如:b, f 發光,其他二極體不發光則不能用來表達一種字元,因為發光的二極體沒有連成一片。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201220194942810.png#pic_center)
題目分析
題目程式碼
第六題:成績統計
題目描述
小藍給學生們組織了一場考試,卷面總分為100分,每個學生的得分都是一個0到100的整數。如果得分至少是60分,則稱為及格。如果得分至少為85分,則稱為優秀。請計算及格率和優秀率,用百分數表示,百分號前的部分四捨五入保留整數。
【輸入格式】 輸入的第一行包含一個整數n,表示考試人數。接下來n行,每行包含一個0至100的整數,表示一個學生的得分。
【輸出格式】 輸出兩行,每行一個百分數,分別表示及格率和優秀率。百分號前的部分四捨五入保留整數。
【樣例輸入】
7
80
92
56
74
88
100
0
【樣例輸出】
71%
43%
題目分析
題目程式碼
第七題:迴文日期
題目描述
2020年春節期間,有一個特殊的日期引起了大家的注意:2020年2月2日。因為如果將這個日期按“yyyymmdd”的格式寫成一個8位數是20200202,恰好是一個迴文數。我們稱這樣的日期是迴文日期。有人表示20200202是“千年一遇”的特殊日子。對此小明很不認同,因為不到2年之後就是下一個迴文日期:20211202即2021年12月2日。也有人表示20200202並不僅僅是一個迴文日期,還是一個ABABBABA型的迴文日期。對此小明也不認同,因為大約100年後就能遇到下一個ABABBABA型的迴文日期:21211212即2121年12月12日。算不上“千年一遇”,頂多算“千年兩遇”。給定一個8位數的日期,請你計算該日期之後下一個迴文日期和下一個ABABBABA型的迴文日期各是哪一天。
【輸入格式】
輸入包含一個八位整數N,表示日期。
【輸出格式】
輸出兩行,每行1個八位數。第一行表示下一個迴文日期,第二行表示下一個ABABBABA型的迴文日期。
【樣例輸入】
20200202
【樣例輸出】
20211202
21211212
【評測用例規模與約定】
對於所有評測用例,10000101 <= N <= 89991231,保證N是一個合法日期的8位數表示。
題目分析
題目程式碼
第八題:子串分值和
題目描述
對於一個字串 S,我們定義 S 的分值 f (S ) 為 S 中出現的不同的字元個
數。例如 f (”aba”) = 2, f (”abc”) = 3, f (”aaa”) = 1。
現在給定一個字串 S [0::n − 1](長度為 n),請你計算對於所有 S 的非空
子串 S [i:: j](0 ≤ i ≤ j < n), f (S [i:: j]) 的和是多少。
【輸入格式】
輸入一行包含一個由小寫字母組成的字串S。
【輸出格式】
輸出一個整數表示答案。
【樣例輸入】
ababc
【樣例輸出】
28
【樣例說明】
子串 f值
a 1
ab 2
aba 2
abab 2
ababc 3
b 1
ba 2
bab 2
babc 3
a 1
ab 2
abc 3
b 1
bc 2
c 1
題目分析
題目程式碼
第九題:平面切分
題目描述
平面上有N 條直線,其中第i條直線是y = Ai x+Bi
請計算這些直線將平面分成了幾個部分。
【輸入格式】
輸入的第一行包含一個整數N, 以下N行,包含兩個證書 Ai,Bi
【輸出格式】 一個整數代表答案
【樣例輸入】
31
1
2 2
3 3
【樣例輸出】
6
題目分析
題目程式碼
第十題:字串排序
題目描述
小藍最近學習了一些排序演算法,其中氣泡排序讓他印象深刻。
在氣泡排序中,每次只能交換相鄰的兩個元素。小藍髮現,如果對一個字串中的字元排序,只允許交換相鄰的兩個字元,則在所有可能的排序方案中,氣泡排序的總交換次數是最少的。
例如,對於字串 lan 排序,只需要 1 次交換。對於字串 qiao 排序,總共需要 4 次交換。
小藍找到了很多字串試圖排序,他恰巧碰到一個字串,需要 V 次交換,可是他忘了把這個字串記下來,現在找不到了。
請幫助小藍找一個只包含小寫英文字母且沒有字母重複出現的字串,對該串的字元排序,正好需要 V 次交換。如果可能找到多個,請告訴小藍最短的那個。如果最短的仍然有多個,請告訴小藍字典序最小的那個。請注意字串中可以包含相同的字元。
【輸入格式】
輸入的第一行包含一個整數V,小藍的幸運數字。
【輸出格式】
題面要求的一行字串。
【樣例輸入】
4
【樣例輸出】
bbaa
【樣例輸入】
100
【樣例輸出】
jihgfeeddccbbaa
題目分析
題目程式碼