2020第十一屆藍橋杯第一場 B組 C/C++


A、跑步訓練

題面:

小明要做一個跑步訓練。初始時,小明充滿體力,體力值計為 10000 。如果小明跑步,每分鍾損耗 600 的體力。如果小明休息,每分鍾增加 300 的體力。體力的損耗和增加都是均勻變化的。小明打算跑一分鍾、休息一分鍾、再跑一分鍾、再休息一分鍾……如此循環。如果某個時刻小明的體力到達 0 ,他就停止鍛煉。問小明在多久后停止鍛煉。為了使答案為整數,請以秒為單位輸出答案。答案中只填寫數,不填寫單位。

注意:

  1. 給的單位是分鍾,要求我們以秒的形式輸出。

  2. 不能直接根據題面意思暴力,這樣子出來的結果是3840,但本題正確答案是3880

  • 為什么?因為通過以下這個代碼,可以很容易發現,x的最后輸出數據是400,所以說明最后一個數據並沒有被算進去,而是直接被直接暴力直接break了。不要題目給你分鍾就直接用分鍾去解決問題了,我們應該把分鍾首先都化成秒;而且並不是每次一定要跑完或休息完一分鍾的,是可以直接20s、30s這樣子的。
  1. 所以我們這題我們其實用筆算更不容易錯,最后的400應該這樣處理:
  • \(\frac{400}{600}\) = \(\frac{x}{60}\) , 然后我們會發現 \(x=40s\),之前的3840+40就等於3880啦!

PS:真的好菜哦!

    int w=0,x=10000;
    while(x)
    {
        //if(x<=0) break;
        x-=600;
        w++;
        if(x<=0) break;
        x+=300;
        w++;
        cout<<x<<endl;
    }

B、紀念日

思路:windows下搜計算器 - > 找到日期計算 -> 拖拉以下就行 -> 單位轉換。
答案:52038720

C、合並檢測

題面:

新冠疫情由新冠病毒引起,最近在 A 國蔓延,為了盡快控制疫情, A 國准備給大量民眾進病毒核酸檢測。然而,用於檢測的試劑盒緊缺。為了解決這一困難,科學家想了一個辦法:合並檢測。即將從多個人( k 個)采集的標本放到同一個試劑盒中進行檢測。如果結果為陰性,則說明這 k 個人都是陰性,用一個試劑盒完成了 k 個人的檢測。如果結果為陽性,則說明至少有一個人為陽性,需要將這 k 個人的樣本全部重新獨立檢測(從理論上看,如果檢測前 k−1 個人都是陰性可以推斷出第 k 個人是陽性,但是在實際操作中不會利用此推斷,而是將 k 個人獨立檢測),加上最開始的合並檢測,一共使用了 k+1 個試劑盒完成了 k 個人的檢測。
A 國估計被測的民眾的感染率大概是 1,呈均勻分布。請問 k 取多少能最節省試劑盒?

思路:並沒有看懂別人寫的!?(我不會,這是別人的思路,沒看懂)

設總人數為pop,感染率p,每次k人,總市級數sum
sum = ([pop/k]+1)*(1+k*p(k+1))
這里的[pop/k]+1)即pop/k向上取整
[pop/k]+1)這里由於pop數量較大,所以這里向上取整的1可以忽略,這里直接取了pop/k,即
sum = (pop/k)*(1+kp(k+1))
將p代入sum = (pop/k)*(1+k*0.01(k+1))
sum求導 = (pop/k)(0.01k-1/k)
可得當k = 10時,sum取最小值

D、REPEAT 程序

思路:我直接暴力寫,算出次數是403,但是貌似不對,然后我看了題解,也沒明白啥意思。

這個用python寫的:https://blog.csdn.net/zranxi/article/details/107629155

這個是本題的數據:https://blog.csdn.net/zranxi/article/details/107630173

E、矩陣

F、整除序列

思路:簡單暴力程序題。

G、解碼

H、走方格

I、整數拼接

J、網絡分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM