2021年第十二屆藍橋杯省賽C/C++B組題解
試題 A :空間
本題總分:5分
【問題描述】
小藍準備用256MB的記憶體空間開一個數組,陣列的每個元素都是32位二進位制整數,如果不考慮程式
佔用的空間和維護記憶體需要的輔助空間,請問256MB的空間可以儲存多少個32位二進位制整數?
【答案提交】
這是一道結果填空題,你只需要算出結果後提交即可。本題的結果為一個整數,在提交答案時只填寫
這個整數,填寫多餘的內容將無法得分。
#include<stdio.h> int main(){ int ans=2; int a=2; for(int i=1;i<26;i++){ ans = ans*a; } printf("%d",ans) ; return 0; }
答案:67108864
解析:考查計算機基礎知識,1位元組等於8位,1MB=220B。
試題 B :卡片
本題總分:5分
【問題描述】
小藍有很多數字卡片,每張卡片上數字都是0~9。
小藍準備用這些卡片來拼一些數,他想從1開始拼出正整數,每拼一個,就儲存起來,卡片就不能用來拼其他數了。
小藍想知道自己能從1 拼到多少。
例如,當小藍又30張卡片,其中0~9各3張,則小藍可以拼出1~10,但是拼11時卡片1已經只有一張了,不夠拼出11。
現在小藍手裡有0~9的卡片各2021張,共20210張,請問小藍可以從1拼到多少?
提示:建議使用計算機程式設計解決問題。
【答案提交】
這是一道結果填空題,你只需要算出結果後提交即可。本題的結果為一個整數,在提交答案時只
整數,填寫多餘的內容將無法得分。
解析:本題使用暴力破解的辦法,遍歷1~n。
試題 C :直線
本題總分:10分
【問題描述】
在平面直角座標系中,兩點可以確定一條直線。
如果有多點在一條直線上,那麼這些點中任意兩點確定的直線是同一條。給定平面上 2 × 3 個
整點 {(x, y)|0 ≤ x < 2, 0 ≤ y < 3, x ∈ Z, y ∈ Z},即橫座標是 0 到 1 (包含 0 和 1) 之間的整數、縱座標
是 0 到 2 (包含 0 和 2) 之間的整數的點。這些點一共確定了 11 條不同的直線。給定平面上 20 × 21 個
整點 {(x, y)|0 ≤ x < 20, 0 ≤ y < 21, x ∈ Z, y ∈ Z},
標是 0 到 20 (包含 0 和 20) 之間的整數的點。請問這些點一共確定了多少條不同的直線。
【答案提交】
這是一道結果填空題,你只需要算出結果後提交即可。本題的結果為一個整數,在提交答案時只填寫這
個整數,填寫多餘的內容將無法得分。
試題 D :貨物擺放
本題總分:10分
【問題描述】
小藍有一個超大的倉庫,可以擺放很多貨物。
現在,小藍有 n 箱貨物要擺放在倉庫,每箱貨物都是規則的正方體。小藍規定了長、寬、高
三個互相垂直的方向,每箱貨物的邊都必須嚴格平行於長、寬、高。
小藍希望所有的貨物最終擺成一個大的立方體。即在長、寬、高的方向上分別堆 L、W、H 的貨物,滿
足 n = L × W × H。給定 n,請問有多少種堆放貨物的方案滿足要求。
例如,當 n = 4 時,有以下 6 種方案:1×1×4、1×2×2、1×4×1、2×1×2、 2 × 2 × 1、4 × 1 × 1。
請問,當 n = 2021041820210418 (注意有 16 位數字)時,總共有多少種方案?
提示:建議使用計算機程式設計解決問題。
試題 E :路徑
本題總分:15分
【問題描述】
小藍學習了最短路徑之後特別高興,他定義了一個特別的圖,希望找到圖中的最短路徑。
小藍的圖由 2021 個結點組成,依次編號 1 至 2021。對於兩個不同的結點 a, b,如果 a 和
b 的差的絕對值大於 21,則兩個結點之間沒有邊相連;如果 a 和 b 的差的絕對值小於等於
21,則兩個點之間有一條長度為 a 和 b 的最小公倍數的無向邊相連。例如:結點 1 和結點
23 之間沒有邊相連;結點 3 和結點 24 之間有一條無向邊,長度為 24;結點 15 和結點 25
之間有一條無向邊,長度為 75。請計算,結點 1 和結點 2021 之間的最短路徑長度是多少。
提示:建議使用計算機程式設計解決問題。
試題 F :時間顯示
時間限制:1.0s 記憶體限制:256.0MB 本題總分:15分
【問題描述】
小藍要和朋友合作開發一個時間顯示的網站。在伺服器上,朋友已經獲取了當前的時間,用一個整數表示,
值為從 1970 年 1 月 1 日 00:00:00 到當前刻經過的毫秒數。現在,小藍要在客戶端顯示出這個時間。小藍
不用顯示出年月日,只需要顯示出時分秒即可,毫秒也不用顯示,直接捨去即可。給定一個用整數表示的
時間,請將這個時間對應的時分秒輸出。
【輸入格式】
輸入一行包含一個整數,表示時間。
【輸出格式】
輸出時分秒錶示的當前時間,格式形如 HH:MM:SS,其中 HH 表示時,值為 0 到 23,MM 表示分,值為 0 到 59,
SS 表示秒,值為 0 到 59。時、分、秒不足兩位時補前導 0。
【樣例輸入 1】
46800999
【樣例輸出 1】
13:00:00
【樣例輸入 2】
1618708103123
【樣例輸出 2】
01:08:23
【評測用例規模與約定】
對於所有評測用例,給定的時間為不超過 1018 的正整數。
試題 G :砝碼稱重
時間限制:1.0s 記憶體限制:256.0MB 本題總分:20分
【問題描述】
你有一架天平和 N 個砝碼,這 N 個砝碼重量依次是 W1, W2, · · · , WN。請你計算一共可以稱出多少種不同的重量?
注意砝碼可以放在天平兩邊。
【輸入格式】
輸入的第一行包含一個整數 N。第二行包含 N 個整數:W1, W2, W3, · · · , WN。
【輸出格式】
輸出一個整數代表答案。
【樣例輸入】
3
1 4 6
【樣例輸出】
10
【樣例說明】
能稱出的 10 種重量是:1、2、3、4、5、6、7、9、10、11。
1 = 1;
2 = 6 − 4 (天平一邊放 6,另一邊放 4);
3 = 4 − 1;
4 = 4;
5 = 6 − 1;
6 = 6;
7 = 1 + 6;
9 = 4 + 6 − 1;
10 = 4 + 6;
11 = 1 + 4 + 6。
【評測用例規模與約定】
對於 50% 的評測用例,1 ≤ N ≤ 15。
對於所有評測用例,1 ≤ N ≤ 100,N 個砝碼總重不超過 100000。
試題 H :楊輝三角形
時間限制:1.0s 記憶體限制:256.0MB 本題總分:20分
【問題描述】
下面的圖形是著名的楊輝三角形:
如果我們按從上到下、從左到右的順序把所有數排成一列,可以得到如下
數列:
1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, …
給定一個正整數 N,請你輸出數列中第一次出現 N 是在第幾個數?
【輸入格式】
輸入一個整數 N。
【輸出格式】
輸出一個整數代表答案。
【樣例輸入】
6
【樣例輸出】
13
【評測用例規模與約定】
對於 20% 的評測用例,1 ≤ N ≤ 10;
對於所有評測用例,1 ≤ N ≤ 1000000000。
試題 I :雙向排序
時間限制:1.0s 記憶體限制:256.0MB 本題總分:25分
【問題描述】
給定序列 (a1, a2, · · · , an) = (1, 2, · · · , n),即 ai = i。
小藍將對這個序列進行 m 次操作,每次可能是將 a1, a2, · · · , aqi 降序排列,
或者將 aqi , aqi+1, · · · , an 升序排列。
請求出操作完成後的序列。
【輸入格式】
輸入的第一行包含兩個整數 n, m,分別表示序列的長度和操作次數。
接下來 m 行描述對序列的操作,其中第 i 行包含兩個整數 pi, qi 表示操作
型別和引數。當 pi = 0 時,表示將 a1, a2, · · · , aqi 降序排列;當 pi = 1 時,表示
將 aqi , aqi+1, · · · , an 升序排列。
【輸出格式】
輸出一行,包含 n 個整數,相鄰的整數之間使用一個空格分隔,表示操作
完成後的序列。
【樣例輸入】
3 3
0 3
1 2
0 2
【樣例輸出】
3 1 2
【樣例說明】
原數列為 (1, 2, 3)。 第 1 步後為 (3, 2, 1)。 第 2 步後為 (3, 1, 2)。 第 3 步後為 (3, 1, 2)。與第 2 步操作後相同,因為前兩個數已經是降序了。
【評測用例規模與約定】
對於 30% 的評測用例,n, m ≤ 1000;
對於 60% 的評測用例,n, m ≤ 5000;
對於所有評測用例,1 ≤ n, m ≤ 100000,0 ≤ ai ≤ 1,1 ≤ bi ≤ n。
試題 J :括號序列
時間限制:1.0s 記憶體限制:256.0MB 本題總分:25分
【問題描述】
給定一個括號序列,要求儘可能少地新增若干括號使得括號序列變得合法,當新增完成後,會產生不同的新增結果,
請問有多少種本質不同的新增結果。兩個結果是本質不同的是指存在某個位置一個結果是左括號,而另一個是右括號。
例如,對於括號序列 (((),只需要新增兩個括號就能讓其合法,有以下幾種不同的新增結果:()()()、()(())、(())()、(()()) 和 ((()))。
【輸入格式】
輸入一行包含一個字串 s,表示給定的括號序列,序列中只有左括號和右括號。
【輸出格式】
輸出一個整數表示答案,答案可能很大,請輸出答案除以 1000000007 (即109 + 7) 的餘數。
【樣例輸入】
((()
【樣例輸出】
5
【評測用例規模與約定】
對於 40% 的評測用例,|s| ≤ 200。
對於所有評測用例,1 ≤ |s| ≤ 5000。