其實打表當然不算作弊。。。。。因為它符合所有比賽規則。
什麽樣的題目要打表呢?
我的經驗是,首先妳可以看出測試數據將是什麽。其次是妳明白自己的程序會超時或超空間。。
舉例
/JudgeOnline/problem?id=1012
這道題目。。。。。。
當妳編寫好的時候,,,,妳運行發現。。。幾乎算到14時。。。時間已經不可忍受。。。。。估計測試數據也就是1,2,3,。。。。14.。。了,,,否則超時也是自認倒黴。,。
所以,妳可以在本機上運行出1~14的所有結果。。。保存在數組中。。。到時候根據輸入的測試數據直接輸出已經算好的答案就行了。。。。時間空間復雜度都是常數。
再舉例
noip2008提高組的第二題。。。
n<=24;如果妳只想到了壹個會超時的算法。。。那麽妳可以把n從1~24的所有答案先算出來。。。保存下來。。。。然後就如同上壹題。。
事實上。。。那年我比完了壹打聽。。。原來大家幾乎都打表的。。。。分數是硬道理。。
再次聲明。。。這個不叫騙分。。。是壹個bt的算法。。。
如果妳這樣寫。。。省獎是沒有影響的。。。只是上報國家獎時,,會檢查妳源代碼。。,,人家看了可能會不給妳獎。
打表的思想用途廣泛,,。。。記憶化搜索可以說就是在運行過程中打表。。。。。。