UVA UVA 489解題報告

2021-05-22 14:57:53 字數 934 閱讀 9031

這是個遊戲題,是原來上英語課時,老師喜歡出的吊死鬼的遊戲...所以遊戲規則大概也清楚.不過需要注意幾點:

1.若正確答案中某個字母出現了多次,那麼只要猜中那個字母一次,就算答案中那個字母全被猜中.

2.猜錯的字母如果重複,則只算錯一次.

若7條命都沒了,就算失敗,全部猜中則算成功.如果沒全猜中但是還有剩餘生命,則算chikened out.

1) 解決第1點,採用乙個函式,來返回answer字串中不重複字母的個數real_len.也就是說如果正確猜對real_len

個字母,就成功.

2)解決第2點,同樣採用乙個陣列來存放猜錯的字母,每次猜錯後,先搜尋該陣列,當陣列中已經有該字母,則跳過,否則加

入陣列.同樣的方法對待猜對的字母.

這個題目我寫的**有很多for迴圈和if-else.而且由於是判斷對錯的題目,上面又引入了為了不重複元素的陣列.因此

**中就出現了很多檢索的迴圈.

簡單來說,檢索乙個元素是否在陣列中.最直接的方法是:

也就是通過迴圈變數最後的值來判斷.如果迴圈是因為迴圈變數到最大值而結束,就說明元素不在陣列.

而如果是因為滿足其中的if條件而break出來的,就說明元素是在陣列中.

寫這個題目的時候思路還比較清晰,寫的比較快,30分鐘左右就差不多寫完了.覺得自己各種條件都考慮得差不多了.

但是提交一直wa.又自己慢慢熬....熬了3天...終於發現還有一種情況沒考慮到:

就是首先一段字母序列中已經成功命中答案的所有字母,但是後面再加幾個錯誤的字母,又會因為生命數為0而lose.

如:answer :   cheese

guess   :   cheeseabdfghijk

顯然這裡有矛盾需要處理.加個if語句判斷下,如果已經成功就break出來就ac了.

所以,自己還是考慮得不全面.以後這方面還是需要加強...

最後,貼下**:

UVA UVA 490 解題報告

一.這道題目卡了我將近有乙個星期,昨天實在忍不住才email求助劉大大.結果是陣列越界.orz.總體來說,這道題目不難,構造出來的模型無非就是個2維陣列,然後將第一列當做第一行輸出,第二列當做第二行輸出,以此類推.不過這裡也有2個小細節處理 1.由於要控制輸出的行數,因此要在輸入時就判斷出最長的一行...

Block Voting 解題報告

這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...

Safebreaker 解題報告

又是吉林大學一道acm題目,題目很簡單,直接暴力解決。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1718 問題描述 對乙個給定數0000 9999 根據一系列猜測,判斷這個數是否存在,存在的話,是否唯一 例如 3321,給定數 作出猜測,1223 ...