第一次训练赛的相关总结和教训!
? ??沒有想到時間會不夠用!這是來到這里的真實感受,每天不停歇地看電腦,資料,刷題!幾乎沒有停下過,有點喘不過氣來,不過身體卻有一種莫名的興奮!
??? 不喜歡拖拉的人,可自己又總是這樣!某種程度上講,這也是種偷懶吧!看到老師的總結的通知,心里卻想著調完這道題再寫,結果一直到走還沒有調出來!然后只得回到宿舍加班補寫,小小屏幕實在費勁,早知如此就不當初了!
??? 實在慚愧的一件事,給定的3個小時內竟然沒有把題讀完,其實這是想要拿金甚至奪冠的致命傷!要想拿好的成績遲早有天要放棄在跟榜的題目上浪費大量時間的惡習,要想優秀你總得會點別人不會的!在去華理的時候,犯了同樣的錯誤,沒有讀完題,當時杠在一道題的時間上太長,而且隊友配合不是很好,最后題都沒讀完,更不要提想出每個題的算法了!那個時候就已經察覺到這個缺點,當時想想就算讀完該不會的還是不會,倒不如花時間去調試,這竟然成了安慰!歸根到底是算法思維不成熟,而現在不一樣,如果一直這樣下去將一直跟在別人屁股后面!
???? 說說題的情況吧!看第一道題的時候看了下板,ok,沒人ac,盡管開始看的時候比賽已經過了10分鐘左右,當時還心想要拿下1y,果斷快速讀題,其實是有一點興奮的,倒讀的,一種壞習慣,比賽的時候有時候先看樣例然后意淫答案,讀不懂或者解法很復雜就按意淫的算法!倒讀了輸入輸出,其實這個時候我關注的是數據量,輸入輸出格式,然后要求的數據是什么,根據樣例大概猜出個題意然后在去讀正題,第一題讀到摘到最大蘋果時,心里其實在懷疑動態規劃,這時有點想打退堂鼓了,不過還是硬著頭皮讀了下去,什么,從左走摘一個蘋果,然后反向走再摘一個蘋果,知道一邊為空,讀了兩遍,竟發現題目如此之水,第一個意識使用結構體,然后sort一下位置完事,然后想更好的算法,因為需要排序,自然想到map,set,又因為只有位置和蘋果數量,用map做位置和蘋果數的映射剛剛好!正負怎辦,很快想到用兩個map分別存正負,輸入的時候順便計算出在正負方向上的所有蘋果的總數,到時候加的時候ans初始化為容器小的那個方向的總蘋果數,然后加容器大的那個方向的和小容器size一樣的蘋果數,最后看兩個容器是否一樣大,不一樣大就多加大容器的一個數據。思路完全沒問題,敲之,TLE on test 1,也是醉掉了,看到已經有人過兩題,心慌了,此時已差不多一個小時,其實能1a,后來知道這個錯誤,差點沒氣死,當然這都是后話了。TLE的第一反應是map不夠快,換c++,g++兩個都T了,于是改算法,改成了結構體,敲了大概半個小時,心想這不能再T了吧,交之,仍在test 1超時,前前后后交了5-6次,這才意識到原來超時是因為第一句while cin>>n;試著改成scanf,斃了狗了,竟然過了,把第一次的代碼照同樣方法改,又過,心里暗罵不快。
題目補充:A題摘蘋果(第二天補寫)
??? 此時時間已經差不多過大半,士氣走些低落,開始讀B,其實想a的改進算法時已經在讀B,讀了兩三次,硬是沒理解題意和要干什么,抓耳撓腮,和p商量一下,才懂題意,定義數組的美麗為數組中出現數的次數的最大值,然后找出最短子串和原串美麗相同。輸出子串上下標。首先想到找出出現最多的數,然后前后遍歷,找到上下標即可。敲之,交了一次,wa,又仔細讀題發現漏了最短的條件,此時已經兩個小時,這個倒覺得做幾個算幾個把,竟輕松了下來。繼續改,也不知道有多久,有人去吃飯了,才意識到時間已經差不多了。中間因為大小于錯寫又雪上加霜耗了20多分鐘。最后收題吃飯已經快六點了,想來自己真是笨!
吃完飯回來看了B的題解,使用倆個數記錄數組內所有數的左右位置。然后找出最大的次數,遍歷數組找到最大次數的那個數,比較左右區間找出最小即可。這種方法開始的時候是有萌芽的,卻沒有深想,最終夭折。后面看了CDE的題解,有個掃描線,有個線段樹,然而已經沒有心情去研究了!
題目補充:B題求美麗子串
??? 雖然這次很慘,但只是起點,沒什么!哪怕下面更慘,重要的是學到了東西!
AcBoy
2015.7.22凌晨
總結
以上是生活随笔為你收集整理的第一次训练赛的相关总结和教训!的全部內容,希望文章能夠幫你解決所遇到的問題。