1. 程式人生 > >【轉載&&幹貨】Noip應試技巧

【轉載&&幹貨】Noip應試技巧

pan 使用 相互 隨機 檢查 全面 關心 即使 display

NOIP應試技巧
  • 如何看待別人的經驗?
    • 我想大家都有臺上的學長滔滔不絕,但是自己在臺下漠不關心,或是老師考試前的叮囑說完一會兒功夫就忘記了的經歷吧。所以,有可能我接下來的所說的話,一到考場上就全部忘記了。
    • 那些別人所分享的經驗與體會,都只是別人的,都只能是借鑒參考的意見;那些沒有親身體會過的經歷,終只是一個故事;那些沒有實踐過的方法,終只是無用的話語。
    • 自己的經驗才是最為深刻的。相比別人的體會,我們對自身失敗和挫折的記憶會更深刻,而且,挫折越深,我們吸取的經驗教訓才更深入骨髓。自己的教訓比起網上上的攻略,學長們的經驗,都要更加深刻。
    • 這並不說明了別人的經驗一無所用;相反的,一定要,一定要重視別人所犯的致命的錯誤。
    • 信息學不像平時的文化課學習,試錯的成本十分低廉,最多就是一次段考的名次下降;它的每一次比賽機會都是極其寶貴的,對於一些機會較少的省市,NOIP可能就是唯一的比賽機會,也是唯一一次證明自己的機會。
    • 正是因為每一次大賽的機會都如此寶貴,所有犯下的錯誤顯得那麽可惜。每當我們在一次比賽中犯下一個錯誤,我們不希望會犯第二次;而且,我們也不希望學弟學妹們會犯下同樣的錯誤。這裏寫下的經驗與教訓,都是真實發生過的;可能有的顯得荒唐,可能聽一次不會留下什麽印象,但只希望在第一次錯誤犯下後,能記起這些的經驗,提高自己的警惕性,同樣的錯誤不要再犯第二次。
    • 最後,別人的經驗終究是別人的,從中學習到自己的不足之處,加以改正,有進步就足夠了。
    • 更加重要的是總結自己的經驗。把每一次模擬的比賽當作仿真NOIP做,並不斷總結自己比賽中出現的錯誤;列表總結,爭取下次不要再犯。
  • 兩個主要方面
    • 大家在考試結束後總會喜歡對答案,討論考試內容;所以會常常聽到些後悔的話:我在比賽中又犯了這個錯誤,那個失誤,沒有發揮出來;如果我寫出來了,那會怎麽樣...
    • 競賽中我們的目的就是得分。在比賽中,將自己能力範圍內的分全部抓住,不丟掉不該丟的分,就是最好的得分方式。
    • 減少非受迫性失誤:會做的都做對
    • 在減少失誤的前提下增加得分:不會做的都蒙對
  • 減少非受迫性失誤:
    • 理解題目有誤:
      • 理解錯題目是十分可怕的一件事情,在辛辛苦苦打完程序以後發現樣例數據不符合,這樣就會對心態造成毀滅性的打擊;或者樣例恰巧是對的,自己測試數據的時候就按著錯誤的思路走,也沒有重新檢查題目,直到出考場後與別人討論才發現自己的問題。
      • A 仔細審題:
        • 仔細讀題2-3次。
        • 做標記【細節/關鍵字】(Word裏面做,草稿紙上顯眼的地方,用不同的顏色筆做(多帶幾支))
        • 用樣例來驗證自己是否理解正確
    • 思路想法錯誤:
      • 有的同學會看到題目和之前刷過的題目很像,也不思考直接開打;也有的喜歡邊寫程序邊想,遇到了錯誤的地方臨時改正;有的同學寫完了後才發現自己的思路根本就是錯的。寫錯一道題目,比不會做一道題目還要嚴重,不僅浪費了大量的時間與精力,更會質疑自己的思路,影響後面的發揮。
      • B 三思而後行:
        • 在草稿紙上,而非大腦幹想,推算自己的思路
        • 有了思路後驗算樣例
        • 遇到熟悉的題目要十分警惕,先要在草稿紙上演算計算步驟,並測試其正確性
        • 寫下代碼前要有充足的思考時間,最好舉例子通過草稿驗證
        • 不要寫從未接觸過/極其不熟練的算法,即使之前聽說過
    • 時間分配不合理:
      • 有的同學可能一上來就和一道難題較上勁了,(主觀認為這道題目十分簡單大家都會做,我做不出來就落後了 / 我做過類似的題目,別人沒有做過,我做了就能拉分了),在編程、調試等環節花了大量時間,導致其他的題目得分不理想。
      • C 暴力分全拿:
        • 通讀題目,並觀察題目的部分分分布
        • 揣摩出題人的每部分部分分意圖,這部分是給什麽算法拿的?
          • 通過數據範圍大致確定算法復雜度
        • 利用考試的前幾個小時,把自己能力範圍內的分數全部拿完,再挑戰自己沒有多少把握的
        • 這樣前面的分數能給予不小的安穩感,至少比賽分數能達到一個滿意的下限
        • 一定要打部分分的程序
          • 1. 你的滿分程序成功打出來了:使用對拍驗證其正確性
          • 2. 你的滿分程序沒有打出來/沒時間編寫了:至少有這部分的分數
          • 3. 沒打出來+沒寫部分分:0分
    • 調試失誤:
      • 由於調試時候的錯誤,並沒有成功驗算程序的正確性
      • D 全方位檢查
        • 靜態查錯:閱讀程序,挑出其中的低級錯誤(變量,循環,復制代碼時候的調整)
        • 樣例數據:“輸入輸出格式”是否正確
        • 小數據:手工可驗算,較為容易查出錯誤
        • 極端數據(小):n=0,1等極小數據,邊界問題,查看是否出現漏判
        • 極端數據(大):按照題目給定範圍,給出極端數據,看是否存在
          • 數組溢出
          • 數字運算溢出
        • 對拍:數據隨機生成,與暴力程序相互驗證正確性
    • 心態失衡:
      • 有可能旁邊坐的是一個大神,鍵盤的響聲嚴重的影響到你。
      • 有可能是你心裏自認為題目很簡單,以自己的能力完全可以考到理想的分數,但比賽中發現自己今天的狀態力不從心。
      • 有可能賽前背負了過分的壓力。
      • 最糟糕的事情是就在考試的過程中,你發現了自己犯下了嚴重的錯誤。焦慮,急躁,自暴自棄,都是可能發生的,並且會嚴重地影響接下來的發揮。
      • E 深呼吸,心理暗示
        • 比賽之前一定要淡定!
        • 遇到卡殼的情況,深呼吸,上廁所洗把臉!
        • 相信自己只要把該拿到的分拿到,考出一個不讓自己後悔的分數,就是自己的進步。
        • 充分利用考試剩余的時間得到盡量多的分數(就像背包問題一樣規劃,用有限的時間來拿最多的分啊),而不管其余人的表現。
    • 低級失誤:
      • 信心滿滿的從考場中走出來,但最後看到成績單上令人無法相信的成績;倒在了終點線前5米處。
      • 模數少打了一個0,文件放錯位置了,等等令人惋惜的非智力因素錯誤
      • F 最後十分鐘全面檢查
        • 這十分鐘是最為緊張的時候,應該果斷放棄編程(除非你想放手一搏),回頭檢查以下內容:
          • 程序文件名,輸入輸出文件名
          • 輸入輸出格式與樣例對照,換行,空格,特殊的字符串("Yes"、"No"、“Impossible”)的大小寫
          • 數組空間大小,對比空間大小限制
          • 題目的給出的一些常數,模數,乘積等
  • 騙分導論:
    • 我不怎麽管這個叫做騙分,只是合理利用規則得分。
    • 方法
      • 打表
      • 找規律,猜想算法
      • 貪心
      • 搜索
      • 樣例
      • 無解
      • 暴力 + 分段

【轉載&&幹貨】Noip應試技巧