【第九屆藍橋杯大賽決賽真題】JAVA大學C組題解


 

有空就會更新....

 

有的題目重復了:再另一篇帖子:https://www.cnblogs.com/dgwblog/p/9090923.html

 

02 結果填空(滿分29分)

 

標題:海盜與金幣

 

12名海盜在一個小島上發現了大量的金幣,后統計一共有將近5萬枚。

登上小島是在夜里,天氣又不好。由於各種原因,有的海盜偷拿了很多,有的拿了很少。

后來為了“均貧富”,頭目提出一個很奇怪的方案:

每名海盜都把自己拿到的金幣放在桌上。然后開始一個游戲。

金幣最多的海盜要拿出自己的金幣來補償其他人。

補償的額度為正好使被補償人的金幣數目翻番(即變為原來的2)

游戲要一直進行下去,直到無法完成。

(當金幣數最多的不只一個人或最多金幣的人持有金幣數不夠補償他人的)

 

游戲就這樣緊張地進行了,一直進行了12輪,恰好每人都“放血”一次,

更離奇的是,剛好在第12輪后,每個人的金幣數居然都相等了!! 這難道是天意嗎?

 

請你計算,游戲開始前,所有海盜的初始金幣數目,從小到大排列,中間有一個空格分開。

 

答案形如:

8 15 29 58 110 ...

當然,這個不是正確答案。

 

注意:需要提交的是一行空格分開的整數,不要提交任何多余的內容。

分隔符要用一個西文的空格,不要用其它符號(比如逗號,中文符號等)

 

 

05 程序設計(滿分81分)

 

標題:交換次數

 

IT產業人才需求節節攀升。業內巨頭百度、阿里巴巴、騰訊(簡稱BAT)在某海灘進行招聘活動。

招聘部門一字排開。由於是自由搶占席位,三大公司的席位隨機交錯在一起,形如:

ABABTATT,這使得應聘者十分別扭。

於是,管理部門要求招聘方進行必要的交換位置,使得每個集團的席位都挨在一起。即最后形如:

BBAAATTT 這樣的形狀,當然,也可能是:

AAABBTTT 等。

 

現在,假設每次只能交換2個席位,並且知道現在的席位分布,

你的任務是計算:要使每個集團的招聘席位都挨在一起需要至少進行多少次交換動作。

 

輸入是一行n個字符(只含有字母BAT),表示現在的席位分布。

輸出是一個整數,表示至少交換次數。

 

比如,輸入:

TABTABBTTTT

 

程序應該輸出:

3

 

再比如,輸入:

TTAAABB

 

程序應該輸出:

0

 

我們約定,輸入字符串的長度n 不大於10

 

資源約定:

峰值內存消耗(含虛擬機) < 256M

CPU消耗  < 1000ms

 

注意:請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內容。

所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。

不要使用package語句。不要使用jdk1.7及以上版本的特性。

主類的名字必須是:Main,否則按無效代碼處理。

 

06 程序設計(滿分105分)

 

標題:自描述序列

 

小明在研究一個序列,叫Golomb自描述序列,不妨將其記作{G(n)}。這個序列有2個很有趣的性質:

 

1. 對於任意正整數nn在整個序列中恰好出現G(n)次。

2. 這個序列是不下降的。

 

以下是{G(n)}的前幾項:

 

n12345678910111213

G(n)1223344455566

 

給定一個整數n,你能幫小明算出G(n)的值嗎?

 

輸入

----

一個整數n  

 

對於30%的數據,1 <= n <= 1000000  

對於70%的數據,1 <= n <= 1000000000  

對於100%的數據,1 <= n <= 2000000000000000  

 

輸出

----

一個整數G(n)

 

 

【樣例輸入】

13

 

【樣例輸出】

6

 

資源約定:

峰值內存消耗(含虛擬機) < 256M

CPU消耗  < 1000ms

 

注意:請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內容。

 

所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。

不要使用package語句。不要使用jdk1.7及以上版本的特性。

主類的名字必須是:Main,否則按無效代碼處理。


免責聲明!

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



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