有空就會更新....
有的題目重復了:再另一篇帖子: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個字符(只含有字母B、A或T),表示現在的席位分布。
輸出是一個整數,表示至少交換次數。
比如,輸入:
TABTABBTTTT
程序應該輸出:
3
再比如,輸入:
TTAAABB
程序應該輸出:
0
我們約定,輸入字符串的長度n 不大於10萬
資源約定:
峰值內存消耗(含虛擬機) < 256M
CPU消耗 < 1000ms
注意:請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內容。
所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。
不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:Main,否則按無效代碼處理。
06 程序設計(滿分105分)
標題:自描述序列
小明在研究一個序列,叫Golomb自描述序列,不妨將其記作{G(n)}。這個序列有2個很有趣的性質:
1. 對於任意正整數n,n在整個序列中恰好出現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,否則按無效代碼處理。