8月10日 周一 dp複習小結

2021-10-09 01:40:58 字數 1180 閱讀 1986

這周開始要複習加自學動態規劃內容了。

今天主要回顧了一下以前學過的內容,從線性dp到區間dp,然後是四種揹包。主要看了看以前的部落格即當時的題目還有別人當時總結的部落格,然後在洛谷上找了些題目(模板題,圖的量)回顧一下相應的做法或者**的基本套路,現在看上去尤其線性dp和區間dp好像就沒那麼難了,現在再做當時感覺較難的題目應該還是比較有信心了。不過當然,不是說我就已經掌握了它們了,任何知識點都能出難題,所以還真不敢說哪個演算法就完全掌握了。

這次回頭看一下,做這部分題目我的看法:

從解題思路或解題過程上,當然還是要抓緊關鍵就是狀態的變化,對於線性dp找前後狀態變化或者說狀態轉移方程時著重看最前面,中間以及最後面,當然這聽起來像廢話但卻是必須要考慮的點,區間dp則相對而言更看重區間大小變化的中間(過程)部分,揹包問題我用的有點死,就是原原本本的看題目對應揹包型別,以得到狀態轉移方程。

從出**,當然包括狀態轉移方程的建立即找到狀態間的變化後提煉狀態轉移方程的過程,在我看來要注意的是要由a[i](我的**一般a指由題目得到的原陣列,原始資料)突破到dp中去,在做題應有意識的將答案的得到過程轉移到dp中去,盡量拜託與a的關係,做簡單題當然沒什麼感覺,在之前打cf時曾經有題目想用dp解決卻總困擾於過程中a還會影響dp的值,或者說雖然大體思路可以但狀態轉移方程中總會有點小東西會是某種不確定因素。當然這有時候就是狀態轉移方程沒找對(或者對狀態的切入點就不好),但也有過其實只要從開始出某些方面稍微一改就可以的情況。囉裡囉唆這麼多其實也就是注重狀態轉移方程的正確性,在總結出狀態轉移方程的時候就要思考**實現時會不會遇到什麼問題,避免浪費時間浪費精力。

當然,還要刷些較難題更能找到不足之處。所以接下來專攻這些新演算法不過題目訓練難度上決定還是稍低一點,然後著重先刷一下以前知識點的難題。

上週還打了幾場cf,div.2還是困在了第三題上,這雖然不會高興但還不至於沮喪,但div.3的一場比賽我卻也卡到了第三題上,這真的不怎麼樣,也可能是因為好長時間沒打的原因吧。

我也已經加入了別人的小隊了,能夠被我們的總隊長選擇實在榮幸,我看了他們cf的做題記錄明白自己還有很多差距,也知道自己不能落後,不能因為自己拖累他們。總結自己的強項就是讀題,但我其實明白上大學後自己英語水平也是下降了許多,所以能夠依仗的也就是對於語法的掌握,所以接下來做題所有的英文題目都注重特殊單詞的積累,爭取在這方面為小隊做出貢獻。當然,這並不是說我做好讀題就完事了,他們很優秀更是給我一種動力,小隊合作會有一定分工,但題目的解決還是要靠三個人一起,我也要努力的。

8月10日小結

第四次做比賽,算是越來越熟練了,今天的題目比較簡單,但比較坑,像第三題一看就是搜尋沒問題,用標記去搜尋結果提交就tle,改了好幾次,能優化的都優化了還是不行,最後想出來不再用標記,直接修改原圖,走過的全部刪除,可不容易的ac了,在這道題上浪費了好長時間,剩下的題目差不多都做過,思路比較清晰。這次做比...

8月8日小結

又經歷一次比賽,今天比賽前兩道題都比較簡單,第一題沒有難度,第二題理解起來有些麻煩,看了好一會才搞懂題意,不過被題意帶進坑了去了,題意就是取區間內的數從小到大重新排列,看要求的位置數字有沒有變化,看懂後便直接用sort寫了,測試沒問題,提交就超時,重新優化了幾個地方,依舊是超時,才感覺出來這是個坑。...

8月7日小結

新的一周開始,開始複習圖論的知識,上學期學習的時候,圖論知識學的很淺,做起來比較吃力,做的題目除了最小生成樹,就是求最短路徑,對dijkstra的演算法運用還不熟練,做dijkstra的變形題,思路比較亂,還需要好好理解floyed和dijkstra演算法,需要多看看大神的 多熟悉dijkstra演...