日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

蓝桥杯单片机十一届省赛_“第十届蓝桥杯青少组C++省赛”前三题解题思路及参考答案!...

發(fā)布時間:2024/9/19 c/c++ 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯单片机十一届省赛_“第十届蓝桥杯青少组C++省赛”前三题解题思路及参考答案!... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)注

及時了解信息學(xué)競賽相關(guān)資訊

第十一屆藍(lán)橋杯青少組C++省賽即將到來,待考的各位小同學(xué)有沒有刷完去年的真題呢?以下是為大家復(fù)習(xí)準(zhǔn)備的“第十屆藍(lán)橋杯青少組C++省賽”前三題解題思路及參考答案。祝福大家在考場上取得佳績!

1

水下探測器

(滿分 50 分)

【原理】

水下探測器可以潛入湖中在任意水深進(jìn)行科學(xué)探索。

湖水的最大深度為 h 米,即它在湖底時到水面的距離(0 ≤ h ≤ 100)。

探測器最初的水下深度為?s 米(0 ≤ s ≤ 100),當(dāng)探測器不在水面(當(dāng)前深度大于?0)時,每個?u 指令可使它上浮?1 米,而當(dāng)探測器在水面時,u 指令是無效的;

當(dāng)探測器不在湖底(當(dāng)前深度小于 h)時,每個 d 指令可使它下沉 1 米,而當(dāng)探測器在湖底時,d 指令是無效的; 在執(zhí)行到無效指令時,探測器不做任何操作而繼續(xù)執(zhí)行下一指令。

【編程實現(xiàn)】

根據(jù)給定的 h、s 和一個指令序列(由字符 u、d 組成的字符串,長度不超過 100),求出執(zhí)行完整的指令序列后,探測器的水下深度。

【輸入格式】

第一行:h 和 s,以空格分開(0 ≤ s ≤ h ≤ 100);

第二行:長度不超過 100 的指令字符串,串中僅包含字母 u 或 d。

【輸出格式】

代表探測器在執(zhí)行指令后的水下深度的數(shù)字。

【輸入樣例#1】

9 1

uduudd

【輸出樣例#1】

2

【題目分析】題目考查基礎(chǔ)語法、字符串、循環(huán)、條件判斷。題目相對簡單,我們需要依次處理每個指令,根據(jù)情況調(diào)整探測器的當(dāng)前深度即可。

1#include?
2#include?
3using?namespace?std;
4
5int?main() 6{
7????int?h,?s;
8????string?str;
9????//?讀入水深、探測器的初始位置和指令字符串
10????cin?>>?h?>>?s?>>?str;
11????//?依次處理每個指令
12????for?(int?i?=?0;?i?<=?str.length()?-?1;?i++)?
13????{
14????????//?對于指令'u',如果不在水面,讓探測器上浮
15????????if?(str[i]?==?'u'?&&?s?>?0)?
16????????{
17????????????s--;
18????????}
19????????//?對于指令'd',如果不在水底,讓探測器下沉
20????????if?(str[i]?==?'d'?&&?s?21????????{
22????????????s++;
23????????}
24????}
25????cout?<endl;?//?輸出答案
26????return?0;
27}

2

小貓吃魚

(滿分 50 分)

【原理】

明明家從 1 號站點(diǎn)出發(fā),開車去旅游,一共要經(jīng)過 n 個站點(diǎn),依次為 2、3 ...... n。由于明明帶上了心愛的小貓,在每個站點(diǎn)都要為小貓?zhí)峁┮粭l魚用做美餐(包括 1 號站點(diǎn))。

除了 1 號站點(diǎn)只能吃 1 號站點(diǎn)買的魚,其他站點(diǎn)既可以吃當(dāng)?shù)刭I的魚,也可吃之前經(jīng)過的站點(diǎn)買了存入車載冰箱中的魚。?但車載冰箱消耗的電能來自汽油,所以每條魚用冰箱保存到下一站的費(fèi)用與各個站點(diǎn)的汽油價格有關(guān)。為使問題簡化,我們約定:

(1)車從某站開出時油箱中都是此站點(diǎn)剛加的汽油;

(2)車載冰箱能容納一路上需要的所有魚。?即:每條魚的費(fèi)用既包括購買時的費(fèi)用,也包括用冰箱保存魚的費(fèi)用。

【編程實現(xiàn)】

為了降低小貓吃魚的總代價,明明預(yù)先上網(wǎng)查到了這 n 個站點(diǎn)的魚價和汽油價格。并據(jù)此算出每個站點(diǎn)買一條魚的費(fèi)用以及從該站點(diǎn)到下一站用冰箱保存一條魚的費(fèi)用。你能幫明明算出這一路上小貓吃魚的最小總費(fèi)用嗎?

【輸入格式】

第一行:站點(diǎn)數(shù) n(1 < n < 100);

接下來的 n 行:每行兩個以空格分隔的正整數(shù),表示這一站買一條魚的費(fèi)用,以及從這一站把每條魚保存到下一站的費(fèi)用,兩個費(fèi)用均為小于 10000 的正整數(shù)。

【輸出格式】

最小總費(fèi)用,是一個正整數(shù)。

【輸入樣例#1】

5

6 3

7 1

3 2

8 3

9 5

【輸出樣例#1】

29

【樣例分析】一共五站,對于第一站只能在此站購買,因此花費(fèi)6;

對于第二站,可以在此站購買也可在前面的站購買,在此站購買花費(fèi)7,在前面站購買的花費(fèi)等于上一站最劃算的花費(fèi)加上運(yùn)到本站的油費(fèi)6+3=9,因此選擇在本站購買;

對于第三站,可以在此站購買也可在前面的站購買,在此站購買花費(fèi)3,在前面站購買的花費(fèi)等于上一站最劃算的花費(fèi)加上運(yùn)到本站的油費(fèi)7+1=8,因此選擇在本站購買;

……

因此,這一路上小貓吃魚的最小總費(fèi)用是6+7+3+5+8=29。

【題目分析】題目考查數(shù)組及遞推算法。題目不難,需要我們在看懂題目描述的基礎(chǔ)上能讀懂輸入輸出樣例。分析題目我們會發(fā)現(xiàn)每一次我們總是在“當(dāng)前站點(diǎn)的魚價格”和“上一站最劃算的花費(fèi)+油費(fèi)”中選取便宜的!

1#include?
2using?namespace?std;
3
4//?a數(shù)組存儲每個站點(diǎn)的魚價
5//?b數(shù)組存儲每個站點(diǎn)的油費(fèi)
6int?a[110],?b[110];
7
8int?main() 9{
10????int?n;
11????cin?>>?n;
12????//?n次循環(huán)輸入每個站點(diǎn)的魚價、油費(fèi)
13????for?(int?i?=?1;?i?<=?n;?i++)?
14????{
15????????cin?>>?a[i]?>>?b[i];
16????}
17????//?變量minn用來存儲之前站點(diǎn)最劃算的花費(fèi)
18????//?變量sum存儲這一路上的最小總費(fèi)用
19????int?minn?=?99999,?sum?=?0;
20????for?(int?i?=?1;?i?<=?n;?i++)?
21????{
22????????if?(a[i]?//?當(dāng)前站的魚價格更低
23????????{
24????????????minn?=?a[i];?//?更新最低花費(fèi)
25????????}
26????????sum?+=?minn;?//?累加費(fèi)用
27????????//?對于下一站,最低花費(fèi)min需要加上油費(fèi)
28????????minn?=?minn?+?b[i];?
29????}
30????cout?<endl;
31????return?0;
32}

3

評選最佳品牌

(滿分 50 分)

【原理】

n 個評委投票,在 m 個商品中評選一個最佳品牌。評選采用多輪淘汰制,即:每輪投票,淘汰掉得票最少的候選品牌(得票并列最少的品牌一起淘汰)。?如此一輪輪淘汰下去,如果最后只剩下一個品牌當(dāng)選,即告評選成功。?但如果在某輪投票中,當(dāng)時未被淘汰的所有候選品牌(大于等于兩個品牌)都并列得票最少,即告評選失敗。。)

如果評選成功就輸出當(dāng)選品牌號。否則輸出最后一輪評選時唯一選票數(shù)的相反數(shù)。?在評選流程中,每個評委的態(tài)度都可用一個序列來表示;例如當(dāng) m = 5 時,某評委的評選態(tài)度序列為:3、5、1、2、4,則表示該評委:優(yōu)先投 3 號,當(dāng) 3 號被淘汰時投 5 號,當(dāng) 3 和 5 都被淘汰時投 1,當(dāng) 3、5、1 都?被淘汰時投 2,僅剩 4 號時才投 4 號品牌的票。

選票的序列中可以表示棄權(quán),用?0 來表示,例如當(dāng) m = 5 時,某評委的評選態(tài)度序列為:3、5、0,則表示該評委:優(yōu)先投 3 號,當(dāng) 3 號被淘汰時投 5 號,其它情況下不投任何品牌的票。

【編程實現(xiàn)】

請你編一個程序,模擬各輪投票的過程,得到評選結(jié)果。

【輸入格式】

第一行:m(0 < m < 10,表示參加評選的品牌數(shù))和 n(1 < n < 1000,表示參加投票的評委數(shù)),之間以空格分隔;

接下來的 n 行:每行都是長度不超 m 的數(shù)字字符串,每個字符串表示一個評委的評選態(tài)度。

【輸出格式】

評選結(jié)果。

【輸入樣例#1】

3 4

123

213

132

10

【輸出樣例#1】

1

【輸入樣例#2】

3 4

321

213

231

312

【輸出樣例#2】

-2

【題目分析】題目考查字符串、桶的思想以及模擬算法。需要孩子能夠模擬題目描述中的場景將其轉(zhuǎn)變?yōu)槌绦蚪鉀Q問題。

【解題思路】初始時,所有品牌都“活著”,模擬整個投票過程,直至“活著”的品牌數(shù)僅剩1或0。

對于每一輪投票,計算每個品牌的票數(shù);初始時,所有品牌的票數(shù)歸零。

枚舉所有評委:對于每個評委的投票序列,通過枚舉找到第一個“活著”的品牌,將相應(yīng)品牌的票數(shù)計1。

通過枚舉,找出“活著”的品牌中的最低票數(shù),將得票數(shù)與最低票數(shù)相等的品牌“殺死”。

如果發(fā)現(xiàn)這輪結(jié)束時,“活著”的品牌數(shù)為0,則投票失敗,輸出最后唯一票數(shù)的相反數(shù);

如果整個投票結(jié)束,還有1個品牌“活著”,則輸出對應(yīng)品牌。

1#include?
2#include?
3#include?
4using?namespace?std;
5
6int?n,?m;
7bool?alive[15];?//?記錄每個品牌是否“活著”
8string?vote[1005];?//?記錄每個評委的投票序列
9
10int?main()11{
12????//?讀入品牌數(shù)、評委數(shù)、每個評委的投票序列
13????cin?>>?m?>>?n;
14????for?(int?i?=?1;?i?<=?n;?i++)
15????{
16????????cin?>>?vote[i];
17????}
18
19????//?初始化所有品牌都“活著”,“活著”的總數(shù)為讀入的品牌數(shù)
20????memset(alive,?1,?sizeof(alive));
21????int?num?=?m;
22
23????while?(num?>?1)?//?模擬整個投票過程,直至“活著”的品牌數(shù)小于或等于1
24????{
25????????//?定義每個品牌的這一輪票數(shù),初始化為0
26????????int?cnt[15];
27????????memset(cnt,?0,?sizeof(cnt));
28
29????????for?(int?i?=?1;?i?<=?n;?i++)?//?枚舉每個評委,唱票計數(shù)
30????????{
31????????????//?枚舉每個評委的投票序列,找出他這一輪會投給誰
32????????????for?(int?j?=?0;?j?33????????????{
34????????????????if?(vote[i][j]?==?'0')?//?這個評委棄權(quán),因為心儀的品牌都“死”了
35????????????????{
36????????????????????break;
37????????????????}
38????????????????else
39????????????????{
40????????????????????//?如果當(dāng)下枚舉到的品牌還“活著”,就投出莊嚴(yán)一票,后續(xù)品牌就不必考慮了
41????????????????????if?(alive[vote[i][j]?-?'0'])
42????????????????????{
43????????????????????????cnt[vote[i][j]?-?'0']++;?//?字符轉(zhuǎn)為數(shù)字,并投票
44????????????????????????break;
45????????????????????}
46????????????????}
47????????????}
48????????}
49
50????????//?找出這輪的最低票數(shù)
51????????int?least?=?n;
52????????//?通過枚舉,將“活著”的品牌的得票數(shù)與當(dāng)下最低票數(shù)作比較
53????????for?(int?i?=?1;?i?<=?m;?i++)
54????????{
55????????????if?(alive[i]?&&?cnt[i]?56????????????????least?=?cnt[i];
57????????}
58
59????????//?通過枚舉,將得票數(shù)與這輪最低票數(shù)相等的品牌統(tǒng)統(tǒng)“殺死”
60????????for?(int?i?=?1;?i?<=?m;?i++)
61????????{
62????????????if?(alive[i]?&&?cnt[i]?==?least)
63????????????{
64????????????????alive[i]?=?false;
65????????????????num--;
66????????????}
67????????}
68
69????????//?這輪結(jié)束,“活著”的品牌數(shù)為0,則投票失敗,輸出最后唯一票數(shù)的相反數(shù)
70????????if?(num?==?0)
71????????{
72????????????cout?<endl;
73????????}
74????}
75
76????//?還有1個品牌“活著”,則通過枚舉,找到這個品牌并輸出
77????if?(num?==?1)
78????{
79????????for?(int?i?=?1;?i?<=?m;?i++)
80????????{
81????????????if?(alive[i])
82????????????{
83????????????????cout?<endl;
84????????????}
85????????}
86????}
87????return?0;
88}

學(xué)而思小猴編程—創(chuàng)造我的未來世界

小猴編程是學(xué)而思旗下的少兒編程品牌,通過編程學(xué)習(xí),培養(yǎng)孩子的邏輯力創(chuàng)造力合作力,成為人工智能時代的未來創(chuàng)造者。

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯单片机十一届省赛_“第十届蓝桥杯青少组C++省赛”前三题解题思路及参考答案!...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。