7.22.17 第八屆福建省大學生程序設計競賽-重現賽

反思

排名第10,HDU應該有4支隊伍在我們前面

代碼:打比賽的時候沒有保存代碼的習慣,所以這次很多題沒有,下次應該記得保存代碼。
https://github.com/yjc567/HDU_04_Contest_Recoder/tree/master/07_22_17_

這次比賽打到後面腦子都有點懵了,自己還是要調整好自己的作息,比賽的5個小時不能犯困。

數據結構題要多補,好久沒做了(上個學期幾乎都沒寫過難題),多做多總結。

這次罰時比較大,說不清是好是壞,以前我們總是因爲怕t了或者怕思路不對不敢寫,雖然wa了很多,但是總比沒有a要好,敢寫敢交這一點是以前我們欠缺的,但是還要多思考,多想特殊數據(特別是一些邊界數據)和簡單的優化,本地多測一測再交。

把題讀完很重要,但是前期也不能花太多時間在上面,快速而準確地讀完並對題目稍有分析才能爲隊友和自己的A題提供可能,希望自己能慢慢學會這一點。

有些題目代碼量大,寫的又比較急,記得初始化

解題順序

  1. A Frog
    水題,1A

  2. L Tic-Tac-Toe
    簡單的暴力,但是自己爆搜沒寫好,改加寫花了半小時,不過貌似FOJ的數據庫出了問題,這半小時不算比賽,後面給我們補了半小時,這裏就有點落後其他隊伍了,wa了一發是因爲題目的輸入有點問題,加上FOJ出了問題,看不到題面導致的,正常過題

  3. B Triangles
    gtw負責的題型,1A,但是判斷點是否在三角形內的方法是他上網搜的,學弟都通過模板做出來了,這種題型還是要以自己的思維,必要時輔以模板。

  4. K Wand
    sjt寫的題,一開始我們看了都覺得和topcoder 7月8日的C題很像,然後類似的代碼交了一發,wa了,後來找了一組錯誤數據,sjt重新想了想,利用錯排公式a了,這題也算正常過了

  5. D Game
    博弈題,規律自己很快找出來了,但是自己沒有想到一組需要特判的數據:1 0,只要StringBob=0 ,Bob一定必敗的,加上枚舉題意(題意的確沒說清1000 這種數反轉後是0001 還是1 ,當時沒有找到比賽的clarification,真的蠢了),這裏卡了一下,還耽誤了sjt的時間,是自己的鍋,以後做題的時候要多想想邊界數據

  6. G YYS
    wa了8發的G題,難以置信,這題先是gtw推公式,後來sjt推,一開始我們想的很簡單,用BigDecimal過,但是精度出現了很大的問題,要麼wa要麼t,後來發現解題需要的階乘把除法控制在了整數範圍,然後BigInteger過之

    事後想想這題寫的太急了,如果我們在第一次wa了或t後重新審視下這題的特殊之處,也許不會wa那麼多次,也不會影響到後面的做題,當然自己作爲一個隊裏的java代碼手,只負責把c代碼換成java代碼也很致命,以後應該多花個5分鐘和隊友瞭解下題意和思路,不然wa的時候只會慌張加找隊友,又佔了一臺機子,太吃資源(寫這題的時候發現BigDecimal會在除不淨的時候報錯?感覺有點雞肋了,這個應該有解決方法,只是自己不瞭解 = =)

  7. J Trades
    一開始用BigInteger寫了一個O(n2) 暴力,T了,然後我們被G題無限卡,接着回到這題,sjt加了一個優化,把複雜度降到了O(n) ,過了,正常過題

    補題的時候,自己寫了一個dp方程,然後打算用斜率優化這個dp方程,(這個事情顯出了我的菜……)事實是,這題貪心就可以了,sjt加的優化其實就是貪心,如果一天的後一天價格比這天高,這天毫無疑問全部買入,就好了

  8. I Magic
    比賽最後過的一題,wa了1發,但是有2發ce,這題細想其實就是暴力題,一開始大家題目都沒看好,都覺得SiSk的後綴,sjt快速寫了一個字典樹,然後ce2次,順便發現了我們看錯了題意,以後一定要對着樣例模擬一遍,這種錯誤一定要少犯,然後我說判後綴可以直接hash,於是sjt來了個O(n2) 判後綴,一開始wa了,然後發現忘記初始化了,a了,因爲是比賽後期,寫的有點急,忘記初始化也是正常的事把,排錯的時候不要心急(自己就心急了,找了一個錯bug),想起來去年多校最後一場也是我忘寫了初始化,= =

然後比賽還剩不到半個小時,三個人對着F Change,懵到了比賽結束,看着5隊早就a了這題,還去開了E題,心裏有點難過,這種數據結構題自己要好好補一下,上次個人賽也有一道相關的題:bx和妹子的遊戲,兩題的解題思路都是把子節點和根節點的關係分離開

賽後補題

  • F Change
    賽後聽了思路馬上就碼出來了,唯一要注意的就是取模操作有點煩

  • B Triangles
    幾何題自己還是要補一下

  • E Doctor
    這題令人難過的地方在於,sjt上個學期學了很多nlp的東西,但是這題的題面實在太長了,補題的時候我看了很久也沒有完全弄懂題意,其實就是裸的維比特算法,涉及到了隱馬爾可夫鏈。補題時,說完這題的題意後,sjt很快就寫出了相關的算法(但是我們事先知道了這題用double可能會精度不足的坑點,需要用log()或者long double,加上對題意理解錯了也可以過樣例,自己沒有信心可以說我們能在比賽的時候做出這道題把),但是這也說明了比賽時把所有題目讀完並理解題意(也許還要自己的一些思考)是一件很重要的事情。

基於我們隊伍依然不強的現狀(QAQ,還有兩道題也許就不補了把

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章