蓝桥杯第十届真题B组(2019年)
2019年第十屆藍橋杯大賽軟件類省賽C/C++大學B組#
試題 A:組隊#
本題總分:5分
【問題描述】
作為籃球隊教練,你需要從以下名單中選出 1號位至 5號位各一名球員,
組成球隊的首發陣容。
每位球員擔任 1號位至 5號位時的評分如下表所示。請你計算首發陣容 1
號位至5號位的評分之和最大可能是多少?
?
?
?
?
此題需要注意的是:一個人可能在很多個位分數都是最高的,但是一個人只能打一個位
1: 98 2:99 3: 98 4:97 5:98 == 490(認真理解題真的很重要 ┭┮﹏┭┮)
?
?
?
?
?
試題 B:年號字串#
本題總分:5分
【問題描述】
小明用字母 A對應數字 1,B對應 2,以此類推,用 Z對應 26。對于 27
以上的數字,小明用兩位或更長位的字符串來對應,例如 AA對應27,AB對
應28,AZ對應52,LQ對應329。
請問2019對應的字符串是什么?
【答案提交】
這是一道結果填空的題,你只需要算出結果后提交即可。本題的結果為一
個大寫英文字符串,在提交答案時只填寫這個字符串,注意全部大寫,填寫多
余的內容將無法得分
?
//答案BYQ #include <bits/stdc++.h> using namespace std; void dfs(int N) {if (N > 26) dfs((N - 1) / 26);//其中(N - 1)為將26進制轉換為以0開頭的,以前是以1開頭滿27進 putchar('A' + (N - 1) % 26); } int main() {int N;while (cin >> N) {dfs(N); cout << endl;}return 0; }?
?
試題 C:數列求值#
本題總分:10分
【問題描述】
給定數列1,1,1,3,5,9,17,…,從第4項開始,每項都是前3項的和。求
第20190324項的最后4位數字。
【答案提交】
這是一道結果填空的題,你只需要算出結果后提交即可。本題的結果為一
個4位整數(提示:答案的千位不為0),在提交答案時只填寫這個整數,填寫
多余的內容將無法得分。
?
?
?
1 #include <iostream> 2 using namespace std; 3 int main(){ 4 int a[4] = {1, 1, 1, 0};//第四為用來存儲所求的值 5 for(int i = 0; i < 20190321; i++){ 6 a[3] = (a[0] + a[1] + a[2]) % 10000; 7 a[0] = a[1] % 10000; 8 a[1] = a[2] % 10000; 9 a[2] = a[3]; 10 } 11 cout << a[3] << endl; 12 return 0; 13 }答案:4659
?
?
?
?
試題 D:數的分解#
本題總分:10分
【問題描述】
把 2019分解成 3個各不相同的正整數之和,并且要求每個正整數都不包
含數字2和4,一共有多少種不同的分解方法?
注意交換 3個整數的順序被視為同一種方法,例如 1000+1001+18和
1001+1000+18被視為同一種。
【答案提交】
這是一道結果填空的題,你只需要算出結果后提交即可。本題的結果為一
個整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分。
?
?
1 #include <iostream> 2 #include <string> 3 #include <sstream> 4 using namespace std; 5 bool check(int n){ 6 if(n < 0){ 7 return false; 8 } 9 string s1; 10 stringstream ss; 11 ss << n; 12 ss >> s1; 13 for(int i = 0; i < s1.size(); i++){ 14 if(s1[i] == '2' || s1[i] == '4'){ 15 return false; 16 } 17 } 18 return true; 19 } 20 int main(){ 21 int count = 0; 22 for(int i = 1; i < 2000; i++){ 23 if(check(i)){ 24 for(int j = i + 1; j < 2019 - i - j; j++){ 25 if(check(j) && check(2019 - i - j)){ 26 count++; 27 } 28 } 29 } 30 } 31 cout << count; 32 return 0; 33 }答案 :?40785
?
五、 迷宮
下圖給出了一個迷宮的平面圖,其中標記為1 的為障礙,標記為0 的為可以通行的地方。
1 010000 2 000100 3 001001 4 110000迷宮的入口為左上角,出口為右下角,在迷宮中,只能從一個位置走到這個它的上、下、左、右四個方向之一。
對于上面的迷宮,從入口開始,可以按DRRURRDDDR 的順序通過迷宮,一共10 步。其中D、U、L、R 分別表示向下、向上、向左、向右走。對于下面這個更復雜的迷宮(30 行50 列),請找出一種通過迷宮的方式,其使用的步數最少,在步數最少的前提下,請找出字典序最小的一個作為答案。請注意在字典序中D<L<R<U。
答案:
DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDDRRRURRUURRDDDDRDRRRRRRDRRURRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDDRRRRRDDRRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR
?
?
六、特別數的和
小明對數位中含有 2、0、1、9 的數字很感興趣(不包括前導0),在1 到 40 中這樣的數包括1、2、9、10 至 32、39 和 40,共 28 個,他們的和是 574。請問,在 1 到n 中,所有這樣的數的和是多少?
【輸入格式】
輸入一行包含兩個整數n。
【輸出格式】
輸出一行,包含一個整數,表示滿足條件的數的和。
【樣例輸入】
40
【樣例輸出】
574
【評測用例規模與約定】
對于20% 的評測用例,1≤n≤10 1 \leq n \leq 101≤n≤10。
對于50% 的評測用例,1≤n≤100 1 \leq n \leq 1001≤n≤100。
對于80% 的評測用例,1≤n≤1000 1 \leq n \leq 10001≤n≤1000。
對于所有評測用例,1≤n≤10000 1 \leq n \leq 100001≤n≤10000。
?
?
?
七、完全二叉樹的權值
給定一棵包含N 個節點的完全二叉樹,樹上每個節點都有一個權值,按從上到下、從左到右的順序依次是A1,A2,...,AN A_{1}, A_{2}, ..., A_{N}A
1
?
,A
2
?
,...,A
N
?
,如下圖所示:
現在小明要把相同深度的節點的權值加在一起,他想知道哪個深度的節點權值之和最大?如果有多個深度的權值和同為最大,請你輸出其中最小的深度。
注:根的深度是1。
【輸入格式】
第一行包含一個整數N。
第二行包含N 個整數A1,A2,...,AN A_{1}, A_{2}, ..., A_{N}A
1
?
,A
2
?
,...,A
N
?
。
【輸出格式】
輸出一個整數代表答案。
【樣例輸入】
7
1 6 5 4 3 2 1
【樣例輸出】
2
【評測用例規模與約定】
對于所有評測用例,1≤N≤100000 1 \leq N \leq 1000001≤N≤100000,?100000≤Ai≤100000 -100000 \leq Ai \leq 100000?100000≤Ai≤100000。
思路:
枚舉。時間復雜度: O(N) O(N)O(N)
注意: 最大和可能為負數
?
?
?
數據1:
3 -100000 -99999 -99999答案1:
1 1數據2:
1 3 2 -100000 -49999 -49999答案2:
2?
?
?
?
?
?
?
?
八、等差數列
數學老師給小明出了一道等差數列求和的題目。但是粗心的小明忘記了一部分的數列,只記得其中N 個整數。
現在給出這N 個整數,小明想知道包含這N 個整數的最短的等差數列有幾項?
【輸入格式】
輸入的第一行包含一個整數N。
第二行包含N 個整數A1,A2,...,AN A_{1}, A_{2}, ..., A_{N}A
1
?
,A
2
?
,...,A
N
?
。(注意A1 A_{1}A
1
?
~ AN A_{N}A
N
?
并不一定是按等差數列中的順序給出)
【輸出格式】
輸出一個整數表示答案。
【樣例輸入】
5
2 6 4 10 20
【樣例輸出】
10
【樣例說明】
包含2、6、4、10、20 的最短的等差數列是2、4、6、8、10、12、14、16、18、20。
【評測用例規模與約定】
對于所有評測用例,2≤N≤100000 2 \leq N \leq 1000002≤N≤100000,0≤Ai≤109 0 \leq Ai \leq 10^90≤Ai≤10
9
。
思路:
排序+遍歷求兩數之差的gcd。時間復雜度: O(NlogN) O(NlogN)O(NlogN)
注意: d=0為常數數列, 答案為N
?
?
?
?
九、后綴表達式
相似題 (N=0, 感覺表達式這題應該是改編的): Slime
給定N 個加號、M 個減號以及N + M + 1 個整數A1,A2,...,AM+N+1 A_{1}, A_{2}, ..., A_{M + N + 1}A
1
?
,A
2
?
,...,A
M+N+1
?
,小明想知道在所有由這 N 個加號、M 個減號以及 N + M +1 個整數湊出的合法的后綴表達式中,結果最大的是哪一個?
請你輸出這個最大的結果。
例如使用1 2 3 + -,則“2 3 + 1 -” 這個后綴表達式結果是4,是最大的。
【輸入格式】
第一行包含兩個整數N 和M。
第二行包含N + M + 1 個整數A1,A2,...,AM+N+1 A_{1}, A_{2}, ..., A_{M + N + 1}A
1
?
,A
2
?
,...,A
M+N+1
?
。
【輸出格式】
輸出一個整數,代表答案。
【樣例輸入】
1 1
1 2 3
【樣例輸出】
4
【評測用例規模與約定】
對于所有評測用例,1≤N,M≤100000 1 \leq N, M \leq 1000001≤N,M≤100000,?109≤Ai≤109 -10^9 \leq A_{i} \leq 10^9?10
9
≤A
i
?
≤10
9
。
?
轉載于:https://www.cnblogs.com/AGoodDay/p/10657573.html
總結
以上是生活随笔為你收集整理的蓝桥杯第十届真题B组(2019年)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式之状态模式详解
- 下一篇: 交换机和路由器技术-11-VLAN Tr