2023年藍橋杯c語言b組題解

2021-07-29 13:45:56 字數 4051 閱讀 5944

1、獎券數目

有些人很迷信數字,比如帶「4」的數字,認為和「死」諧音,就覺得不吉利。

雖然這些說法純屬無稽之談,但有時還要迎合大眾的需求。某**活動的獎券號碼是5位數(10000-99999),要求其中不要出現帶「4」的號碼,主辦單位請你計算一下,如果任何兩張獎券不重號,最多可發出獎券多少張。

請提交該數字(乙個整數),不要寫任何多餘的內容或說明性文字。

#includeusing namespace std;

int main()

for(b=0;b<10;b++)

for(c=0;c<10;c++)

for(d=0;d<10;d++)

for(e=0;e<10;e++)

else}}

}} }

printf("%d\n",sum);

return 0;

}答案:52488

其實直接用數學算,來的更快。

2、星系炸彈

在x星系的廣袤空間中漂浮著許多x星人造「炸彈」,用來作為宇宙中的路標。

每個炸彈都可以設定多少天之後**。

比如:阿爾法炸彈2023年1月1日放置,定時為15天,則它在2023年1月16日**。

有乙個貝塔炸彈,2023年11月9日放置,定時為1000天,請你計算它**的準確日期。

請填寫該日期,格式為 yyyy-mm-dd  即4位年份2位月份2位日期。比如:2015-02-19

請嚴格按照格式書寫。不能出現其它文字或符號。

直接用excel或者呼叫c++中的時間函式。

3、三羊獻瑞

觀察下面的加法算式:

祥 瑞 生 輝

+   三 羊 獻 瑞

-------------------

三 羊 生 瑞 氣

(如果有對齊問題,可以參看【圖1.jpg】)

其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。

請你填寫「三羊獻瑞」所代表的4位數字(答案唯一),不要填寫任何多餘內容。

#includeusing namespace std;

int main()

for(sheng=0;sheng<10;sheng++)

for(hui=0;hui<10;hui++)

for(san=1;san<10;san++)

for(yang=0;yang<10;yang++)

for(xian=0;xian<10;xian++)

for(qi=0;qi<10;qi++)

else}}

}}}}

}} }

return 0;

}

果斷暴力,但是,如果用c++中的next_permutation()很大大的節省你的時間。

其實,像這種,關鍵是判重。我個人覺得,最有效防止重複的方法是:

加乙個全域性的int visited;

6、加法變乘法

我們都知道:1+2+3+ ... + 49 = 1225

現在要求你把其中兩個不相鄰的加號變成乘號,使得結果為2015

比如:1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015

就是符合要求的答案。

請你尋找另外乙個可能的答案,並把位置靠前的那個乘號左邊的數字提交(對於示例,就是提交10)。

注意:需要你提交的是乙個整數,不要填寫任何多餘的內容。

#includeusing namespace std;

int main()

;int main()

if(j-2>=0)

if(j-3>=0)

if(j-4>=0)

dp[i][j]=dp[i-1][j]+dp[i][j];

} }printf("%d\n",dp[13][13]);

return 0;

}*///狀態是:dp[i][j]代表,i牌,在j張牌的時候的乙個個數。

//狀態轉移: 選擇0,1,2,3,4;(每張牌)。------不要忘記考慮0。即不選擇的重要性。

//也正因為此,其實也可以遞迴式的列舉。因為,每個階段是選擇0,1,2,3,4

8、移動距離

x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為1,2,3...

當排滿一行時,從下一行相鄰的樓往反方向排號。

比如:當小區排號寬度為6時,開始情形如下:

1  2  3  4  5  6

12 11 10 9  8  7

13 14 15 .....

我們的問題是:已知了兩個樓號m和n,需要求出它們之間的最短移動距離(不能斜線方向移動)

輸入為3個整數w m n,空格分開,都在1到10000範圍內

w為排號寬度,m,n為待計算的樓號。

要求輸出乙個整數,表示m n 兩樓間最短移動距離。

例如:使用者輸入:

6 8 2

則,程式應該輸出:

4再例如:

使用者輸入:

4 7 20

則,程式應該輸出:

5資源約定:

峰值記憶體消耗 < 256m

cpu消耗  < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

注:  簡單的模擬題。

9、壘骰子

賭聖atm晚年迷戀上了壘骰子,就是把骰子乙個壘在另乙個上邊,不能歪歪扭扭,要壘成方柱體。

經過長期觀察,atm 發現了穩定骰子的奧秘:有些數字的面貼著會互相排斥!

我們先來規範一下骰子:1 的對面是 4,2 的對面是 5,3 的對面是 6。

假設有 m 組互斥現象,每組中的那兩個數字的面緊貼在一起,骰子就不能穩定的壘起來。 

atm想計算一下有多少種不同的可能的壘骰子方式。

兩種壘骰子方式相同,當且僅當這兩種方式中對應高度的骰子的對應數字的朝向都相同。

由於方案數可能過多,請輸出模 10^9 + 7 的結果。

不要小看了 atm 的骰子數量哦~

「輸入格式」

第一行兩個整數 n m

n表示骰子數目

接下來 m 行,每行兩個整數 a b ,表示 a 和 b 數字不能緊貼在一起。

「輸出格式」

一行乙個數,表示答案模 10^9 + 7 的結果。

「樣例輸入」

2 11 2

「樣例輸出」

544「資料範圍」

對於 30% 的資料:n <= 5

對於 60% 的資料:n <= 100

對於 100% 的資料:0 < n <= 10^9, m <= 36

資源約定:

峰值記憶體消耗 < 256m

cpu消耗  < 2000ms

請嚴格按要求輸出,不要畫蛇添足地

列印類似:「請您輸入...」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別。

#include#define max 1000000000+9

using namespace std;

int edge[7][7]=;

int b[7];

int sum=0;

void dfs(int n,int k,int i);

int main()

return;

} else

}}}

我們從分析中,發現就是簡單的樹的分支。

2023年藍橋杯B組C C 決賽題解

三重迴圈 列舉a,b,c的值,如果滿足兩個條件 3個a 7個b 1個c 15 4個a 10個b 1個c 420 就是一組合法的解。輸出a b c就是答案 一開始以為很難,看了題解 都是用dfs暴力搜出來的 國賽第二題永遠是用dfs解決。下面部落格dfs的很完美啊!參考部落格 思路 dfs x,y 正...

2015藍橋杯b組

如果x的x次冪結果為10 參見 圖1.png 你能計算出x的近似值嗎?顯然,這個值是介於2和3之間的乙個數字。請把x的值計算到小數後6位 四捨五入 並填寫這個小數值。注意 只填寫乙個小數,不要寫任何多餘的符號或說明。include include include include include de...

藍橋杯2015B組C

1 獎券數目 題目 有些人很迷信數字,比如帶 4 的數字,認為和 死 諧音,就覺得不吉利。雖然這些說法純屬無稽之談,但有時還要迎合大眾的需求。某 活動的獎券號碼是5位數 10000 99999 要求其中不要出現帶 4 的號碼,主辦單位請你計算一下,如果任何兩張獎券不重號,最多可發出獎券多少張。請提交...