close



html模版寧波市32屆中小學生計算機解題報告


小夥伴們決定出道紙牌問題難倒星星,讓他別再狂妄自大瞭,問題是這樣的:每人摸一張牌,



每張牌上寫著某一個數字,然後規定若幹對夥伴間交換紙牌(每個小夥伴隻允許交換一次),



交換得分就是大的紙牌值減去小的紙牌值,若幹次得分加起來和最大是多少?


靜電除油煙機價格

可是小夥伴們忘記瞭星星學過編程,請你和他一起來用程序解決這個問題吧。



【輸入】



第一行兩個用空格隔開的正整數 M,N,分別表示交換次數和總人數(星星也算在內)



第二行 N 個用空格隔開的正整數 ai



【輸出】



一個正整數,表示最大得分值



【樣例輸入 1】



1 5



3 7 2 1 6



【樣例輸出 1】



6



【樣例輸入 2】



2 5



3 7 2 1 6



【樣例輸出 2】



10



【數據范圍】



60%的數據中 M=1



80%的數據中 M 2



100%的數據 M 3,N 100,ai 1000



本次比賽今天剛剛結束,解題報告第一時間現在給出



第一題模擬 ,排序 從大到小 桶排,然後做m次減法,最大減最小,次大減次小。。。。。。



時間復雜度n 線性



2.買玩具



(buy.pas/c/cpp)



【問題描述】



玩具店有個活動,買2個送1個:3個玩具隻要付較貴的2個玩具的錢就可以瞭。舉個例子:



10 3 2 4 6 4 9,如果這樣組合(10, 3, 2), (4, 6, 4), (9),就在第一個括號中省下2元,第二個括號



中省下4元,但第三個括號不能省瞭,因為隻有一個玩具。



小星星是個懂事的孩子,他想盡可能的為傢裡省錢,他能成功嗎?



(註意:玩具組合的數量可以是1或者2或者3 )



【輸入】



輸入的第一行一個整數N(1 N 100000),表示玩具的數量。



50%的數據中N 2000



接下來的N行,每行包含一個整數Ci(1 Ci 100000), 表示每個玩具的價格



【輸出】



一個數,表示最終要為這些玩具付出的最小價格



【樣例輸入1】



4



3



2



3



2



【樣例輸出1】



8



【樣例輸入2】



6



6



4



5



5



5



5



【樣例輸出2】



21



【樣例 1 解釋】



分組(3,2,2)(3)



【樣例 2 解釋】
油煙處理器



分組(6,4,5)(5,5,5)



貪心加桶排



從大到小,線性掃描,如果餘數是1或者2 則 累加



最後一個陷阱 累加器要int64 或者 long long 類型。



3.炸僵屍



(boom.pas/c/cpp)



【問題描述】



媽媽得知小星星成功地解決瞭買玩具難題,獎勵他去看電影《生化危機 6》,小星星看



著看著就替女主角擔心起來瞭,因為她要對付那麼多的僵屍怪物,小星星恨不得扔顆炸彈消



除可惡的僵屍們,他腦袋裡開始構思出這樣的場景:



在一個 N 行 M 列單元格構成的地圖中,去放置一個炸彈,這種炸彈威力巨大,以放置



點為中心進行行列延伸炸到同行同列的僵屍,但不能穿墻。上圖中可以把炸彈放置在第 3



行第 4 列,最多可以炸到 4 個僵屍,如果對地圖稍加改動(如下圖),在第 5 行第 4 列處加



入一個墻體,又如何呢?答案還是最多炸到 4 個僵屍,隻不過最佳炸彈放置點發生瞭變化,



油煙處理DIY 應該放到第 6 行第 6 列的位置。



寧波市第 32 屆中小學生程序設計競賽復賽試題小學組



第 5 頁 共 7 頁



當然炸彈要靠勇敢的小星星去放,他隻能在地圖中朝上下左右四個方向行進(不能斜對



角移動),他不能穿墻,也不能穿越僵屍,要保證他的安全,如下圖,告訴你小星星起始位



置是第 2 行第 2 列,那麼他的最佳放置炸彈位置應該是第 3 行第 2 列,最多炸到 2 個僵屍。



現在請聰明的你也一起加入到消除僵屍的隊伍來。



【輸入】



第一行四個用空格隔開的正整數表示 N,M,X,Y,分別表示 N 行 M 列的地圖,小星星起



始位置第 X 行,第 Y 列。



接下來 N 行 M 列用來描述地圖上每個單元格, G 表示僵屍, # 表示墻體,隻有 .



表示的單元格才是小星星能夠正常行走,能夠放置炸彈的單元格。(數據保證四面都是墻體,



也就是第 1 行、第 N 行、第 1 列、第 M 列肯定都是墻體)。



【輸出】



一個整數,最多能炸掉的僵屍數量。



【樣例輸入】



13 13 4 2



#############



###..GG#GGG.#



###.#G#G#G#G#
油煙處理設備



#.......#..G#



#G#.###.#G#G#



#GG.GGG.#.GG#



#G#.#G#.#.#.#



##G...G.....#



#G#.#G###.#G#



#...G#GGG.GG#



#G#.#G#G#.#G#



#GG.GGG#G.GG#



#############



【樣例輸出】 寧波市第 32 屆中小學生程序設計競賽復賽試題小學組



第 6 頁 共 7 頁



10



【數據范圍】



30%的數據,保證 N,M 14,並且小星星一定能夠抵達最佳炸彈放置點



40%的數據,保證 N,M 14



70%的數據,保證 N,M 101



100%的數據,保證 N,M 2001



100%的數據,保證 X N



100%的數據,保證 Y M



寬搜加預處理 深搜用灌水法2000的數據否則是要超時的。寬搜做個小小變形。在寬搜的時候每次記錄當前點位的最大僵屍值,因為有可能最後走不到那個最多僵屍的點位。預處理要處理每個點位能夠炸到的最大僵屍值。



4.夢裡的難題



(dream.pas/c/cpp)



【問題描述】?



生化危機血腥暴力的場面對小星星的沖擊很大,晚上頻繁地做起瞭夢,夢裡他擔負起拯



救世人消滅僵屍的重任,眼看就能拿到消除 T 病毒的解藥還世界清靜,但 T病毒人工智能



電腦擋住瞭星星的去路,它聲稱研制出 T 病毒的目的是因為察覺人類智力退化,隻有聰明



的人才能存活下來,如果想要拿到解藥,必須回答出下面這個難題:



有 N(1 N 100000)個數字(由 1 到 K 組成,1 K 10000),排成一列形成數字串,例如



1,5,3,2,5,1,3,4,4,2,5,1,2,3 它包含瞭很多的子序列,比如(5)、(1,3,2)、(1,5,3)、(3,4,1,3),請思



考該列數字串不包含的最短的由1 到 K 組成的的子序列長度是多少?



【輸入】



第一行輸入兩個整數 N 和 K,接下來 N 行分別輸入這 N 個數字



【輸出】



一個整數表示原數字串中不包含的最短子序列長度



【樣例輸入】



14 5



1



5



3



2



5



1



3



4



4



2



5



1



2



3



【樣例輸出】



3



【樣例解釋】 寧波市第 32 屆中小學生程序設計競賽復賽試題小學組



第 7 頁 共 7 頁



所有的長度為 1 和為 2 的子序列都存在。



長度為 1 的子序列有:(1)、(2)、(3)、(4)、(5)



長度為 2 的子序列有:(1,1)、(1,2)、(1,3)、(1,4)、(1,5)、(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、



(3,1)、(3,2)、(3,3)、(3,4)、(3,5)、(4,1)、(4,2)、(4,3)、(4,4)、(4,5)、(5,1)、(5,2)、



(5,3)、(5,4)、(5,5)



長度為 3 的序列不全都有,例如:(2,2,4)



桶記數,加線性掃描。要生成高1位的長度,那麼就要保證k個數字都要出現過。例如要生成2位長度,則至少要在輸入數據中查找到有2個k位數字都出現的循環節。舉個例子 k=3



2 13 1 1 2 3 1 2他隻能生成連續的長度2為2個長度,因為1 2 3 11 12 13 21 22 23 31 32 33 111 112 113 121122 123 131 132 133 211 212 213 221 222 223 231 232 233 311 312 313 321 322 323331 332 獨缺333. 原因是藍3 淡藍3後面沒有需要的第三個 紫3。



上一頁 1 2 下一頁

1534A23805AB549B
arrow
arrow

    n9px64zwpk 發表在 痞客邦 留言(0) 人氣()