10
Elvis * Java 基基基基 基基基基基基

Java 基礎入門4

Embed Size (px)

Citation preview

Page 1: Java 基礎入門4

Elvis

*Java 基礎入門簡單解題技巧

Page 2: Java 基礎入門4

挑食的大胃王松板老師為陵櫻國小三年四班的老師 , 陵櫻國小原本是由中央廚房供應營養午餐給小朋友們食用 , 但是很不幸的 , 最近大地震把中央廚房震壞了 , 因此在廚房修復之前 , 松板老師必須每天訂 便當讓小朋友有午餐可以吃。訂便當並不是一件簡單的工作 , 因為小朋友們都非常的挑食 , 對於不吃的食物 , 小朋友會將其 連同底下的部分白飯一起挖掉 , 如果白飯吃的不夠多 , 小朋友會吃不飽以至於無法專心上課 , 學 習效果不佳 , 因此訂便當的首要目標就是找到可以讓大家都吃得飽的便當 !松板老師決定以班上最挑食的同時也是食量最大的大胃王阿力當作買便當的標準 , 如果最挑食 的阿力都可以吃飽了 , 那麼全班也都可以吃飽。老師記錄了阿力所有不吃的食物 ,當她選購便當 的時候 , 會先看看便當的表面有哪些菜 , 試算出阿力會吃的白飯量。為了方便起見 , 老師的計算方法是先將便當切成以 1 cm × 1 cm 為單位的小格子 , 每個格子不 是阿力會吃就是阿力不會吃。對於阿力不吃的菜 , 老師假設阿力會挖掉的區域為不吃的食物所存 在的格子與其上下左右相連的格子 , 對於所有會被挖掉的區域 , 阿力會挖掉 3 cm 厚的白飯。示意 圖如下 , 下圖是一個便當的表面 ,0 代表是阿力會吃的食物 ,1 代表是阿力不吃會挖掉的食物 , 灰 色區域就是阿力所有會挖掉的區域 , 總共是 18 cm2 , 因此阿力總共會挖掉 18 × 3 = 54 cm3 的白 飯。 阿力可以食用的白飯量即為白飯原本的體積減掉被挖掉的白飯體積。因為市面上的便當琳瑯滿目 , 因此松板老師想請你幫忙寫個程式 , 協助計算各種便當小朋友可 食用的白飯量是多少。

Page 3: Java 基礎入門4

輸入說明輸入的第一行有一個正整數 T(T≤100) 代表測試資料的組數。每一組測試資料的第一行有三個正整數 M,N,K(3≤M,N,K≤50) 分別以空白隔開。M 代表便當的長度, N 代表便當的寬度, K 代表便當的高度。接下來會有 M 行,每行有 N 個數字,分別以一個空白隔開,表示便當表面每一格是否是阿力會吃的食物。數字由 0 與 1 組成, 0 代表是阿力會吃的食物, 1 代表是阿力不吃會挖掉的食物。

輸出說明對於每一筆測試資料請輸出一列,表示阿力可以食用的白飯量。

Page 4: Java 基礎入門4

範例輸入29 10 50 0 0 0 0 0 0 0 0 00 1 1 1 0 0 0 0 0 00 1 1 1 0 0 0 0 0 00 1 1 1 0 0 0 0 0 00 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 1 15 5 30 0 0 0 00 1 1 0 00 0 0 1 10 0 0 0 10 0 1 0 0

範例輸出33621 出處: 2013 — 網際網路程式設計全國大賽國中組初賽

Page 5: Java 基礎入門4

胖胖天大大薯胖胖天為了達成他天天胖的野望,每天都以吃垮胖胖天國的麥當當為目標生活著。吃著吃著竟發現驚人的事實——胖胖天國內麥當當同一天裡大薯的量是固定的!也就是說,同一天裡無論早晚拿到的一包大薯裡面的薯條根數都一樣,真是辛苦店員了。胖胖天發現後馬上跟他遠方的好友,居住在節奏天國的簡博曄分享這件事情,正巧胖胖天覺得天天吃大薯有點膩,聰明的簡博曄就想了個有趣的吃法增添胖胖天吃大薯時的樂趣——每天都要吃不同數量的大薯!為免釀成一天要吃一百包大薯的悲劇,胖胖天決定一天最多只買一次大薯,但是他可以選擇在正常時段升級套餐吃一包大薯,或者利用晚上十點後買大送大的優惠一天吃兩包大薯,又或者他可以選擇那天就颯爽不吃大薯,就算點套餐也要把薯條換成玉米濃湯(他才不吃中薯小薯什麼的,一口就沒了太小家子氣了)。好心的正妹店員湯湯偷偷透露了接下來 N 天麥當當的大薯量是幾根給胖胖天知道,已知聰明的胖胖天會吃儘量多天的大薯,請問他最多在接下來 N 天中可以吃到幾天大薯呢?

Page 6: Java 基礎入門4

輸入說明輸入的第一行有一個正整數 T(T≤1020) 代表測試資料的組數。每一組測試資料的第一行有一個正整數 N(N≤100000) ,下一行包含了 N 個正整數Ci(Ci≤109) 代表第 i 天時一包大薯會有 Ci根。輸出說明對於每一筆測試資料請輸出一行,包含一個整數表示胖胖天在接下來 N 天中最多可以吃幾天大薯。範例輸入331 2 341 1 1 151 1 2 3 5

範例輸出325 出處: 2013 — 網際網路程式設計全國大賽高中組初賽

Page 7: Java 基礎入門4

北⽃遺跡陰陽的概念,源⾃古代中國人⺠的⾃然觀。古人觀察到⾃然界中各種對⽴又相生的⾃然現象,如天地、⽇⽉、晝夜、寒暑等,⽽以哲學的思想方式,歸納出「陰陽」的概念。中國的傳統學術中,有所謂「孤陰不生,獨陽不長」及「無陽則陰無以生,無陰則陽無以化」的觀念。北⽃遺跡便是建⽴在此理論上所建的古老遺跡,傳說北⽃遺跡深處藏著宇宙萬物的真理,只要參悟此真理,便能上知天⽂下知地理,預測未來的⾛向。⾝為陰陽家的狂全為了成為有史以來最偉大的陰陽家之一,來到了北⽃遺跡。在通過一系列的考驗後,狂全突破了層層難關來到了北⽃遺跡的盡頭,盡頭有著一尊雕像,只要解開這個最後的謎題,狂全便可以參悟宇宙萬物的真理。在狂全觀察許久後終於發現雕像周圍散發著不協調的氣息,唯有調解此不協調之氣息,狂全才看得到雕像背後的真理。於是狂全凝結了許多陽粒子與陰粒子,每顆陽粒子擁有 K1 的能量,每顆陰粒子擁有 K2 的能量。當 N 顆陽粒子與 M 顆陰粒子散落在大氣之中時,會產生 N × K1 + M × K2 的不協調度。⾝為一位陰陽家,便要有調解此不協調度之能力。狂全知道陰陽存在著互根互依,互相轉化的關係,陰中有陽,陽中有陰,任何一方都不可能離開另一方單獨存在。每當 N 顆陽粒子與 M 顆陰粒子在一起時,他們能激發出巨大的能量。陰陽家可以經由修煉的力量產生 N × M 的協調度,當協調度與不協調度一樣大時,便可調解雕像周圍之氣息。除了是一位陰陽家,狂全也是一位數學家。由於陽粒子與陰粒子的能量是固定的,所以狂全也很想知道到底有幾種陰陽粒子的產生方法可以調解雕像周圍的氣息。

Page 8: Java 基礎入門4

輸⼊說明輸⼊的第一行有一個正整數 T 表⽰有幾組測試資料。每一筆測試資料有兩個正整數 K1, K2 於一行,分別表⽰陽粒子與陰粒子的能量。• T ≤ 1000• 1 ≤ K1,K2 ≤ 1000000

輸出說明對於每一筆測試資料,請輸出一個數字於一行表示答案,我們保證答案小於 231 。

Page 9: Java 基礎入門4

範例輸入51 22 34 78 6101 6■ 範例輸出246108範例說明• 對於第一筆範例輸⼊的答案為 (3,3), (4,2)。• 對於第⼆筆範例輸⼊的答案為 (4,8), (5,5), (6,4), (9,3)。• 對於第三筆範例輸⼊的答案為 (8,32), (9,18), (11,11), (14,8), (21,6), (35,5)。• 對於第四筆範例輸⼊的答案為 (7,56), (8,32), (9,24), (10,20), (12,16), (14,14),(18,12),(22,11), (30,10), (54,9)。• 對於第五筆範例輸⼊的答案為 (7,707), (8,404), (9,303), (12,202), (107,107),(208,104),(309,103), (612,102)。

出處: 2014 — 網際網路程式設計全國大賽高中組決賽

Page 10: Java 基礎入門4

解題方法:1. 想好步驟一步一步寫2. 先找出規律,在寫程式參考網站:http://buzzorange.com/techorange/2014/03/27/best-resources-to-learn-code/

玩遊戲寫程式:3. http://studio.code.org/4. http://codecombat.com/