目前遇到的問題模型
(貪心演算法需要對資料先按一定規則排序)
從問題中抽象出貪心標準的數學模型是解題關鍵
區間問題:演算法與資料結構的多重組合方式,讓題目難度加大,所以基礎要紮實,不然一掉鍊子就不知如何入手。還有就是,知道很多演算法,但不會運用,不知道用在**,怎麼用等等,自己這方面問題確實挺多。一連串起始位置,終點位置,求最多進行幾個活動…安放雷達…搬運桌子…疊加區間…一般都要設結構體,兩個屬性值,然後將問題抽象轉化。
截止時間問題:
設乙個date陣列,寫乙個finddate函式,用並查集思想查詢合適未使用的時間,下標用來標記初始可用時間,每次使用完後,該處陣列值要減一
追擊與等待問題:
此類問題有一定條件要求,比如最終都會到達,就不用一步一步模擬了,直接貪到底,大大簡化了問題的模型,利用潛在的貪心標準:下乙個人的時間和現在的時間來比較,選出最早或最晚,類似這樣的問題,需要很長時間把握該問題的核心。
數列規律題:
這類題沒找到規律根本沒法做,所以需要列下簡單的資料,一點點琢磨。比如推遞推式這種操作,如果能找到,將大大降低演算法複雜度,需要很高的數學證明與計算能力。
貪心+其他演算法或者資料結構:
這類題較靈活,目前練的較少,不是很熟悉它的套路。比如貪心加二分的那個印刷書籍的題,不知道怎麼入手。
一點點圖論:
青蛙鄰居那個需要圖論裡的定理來做。
經過兩個周的刷題,或多或少都對做題有了那麼一點感覺,碰到類似的變形題都會有確切的思路,但是遇到難題,還是沒有思路,大部分是因為讀不懂題,即使翻譯全文,也沒完全把握整道題的突破口,語言方面的欠缺是眾多阻礙之一。一旦,有一句話沒讀懂,可能就會在此處wa。所以,做這種英文題需要耐心和細心,我一般都是先自己讀題理解題意,然後對照輸入輸出,再進一步理解題目要我幹什麼,如果還有讀不懂的,那只能借助機器翻譯一下,當然,機器翻譯大多數都不盡人意,不像人說的話。因此,需要培養做題的感覺和敏銳的觀察力、以及英文閱讀習慣。
再者,乙個演算法思想可以變化出很多巧妙的問題,如何從本質上理解它、運用它是關鍵。雖然學了貪心演算法,知道貪心演算法是每次都依據貪心標準構造出區域性最優解,思想是這麼個思想,但怎麼實現?怎麼構造出適合的資料結構?怎麼在此基礎上計算?這又是另一回事。我認為,要清楚認識乙個演算法應該從多個角度接觸它,刷題是乙個方法,但是刷是手段,這個鍛鍊思維、加深認識的過程是目標,這就如同那句話 「 學而不思則罔,思而不學則殆 」 ,當然,有得必有失,不付出一定的代價、不花上時間來沉澱,急於求成,往往欲速則不達。
還有就是心理承受能力,有時候就想憑自己的**ac,但有時就ac不了,乙個題wa了還湊合,乙個又乙個題wa,改來改去,最後放棄自己做,去看別人答案,的確不甘心而且打擊自信心。其實再仔細想一想,我本來就很菜,非要求ac帶來的成就感,又不想copy別人的**,一道題一天都改不對,這樣太浪費時間。半個小時乙個小時實在做不對,還不如看題解,理解後、消化完,再自己敲上幾遍,明白了再提交。總之,有時候能自己ac確實舒服,但更多時候不能自己ac,所以必須要能抗壓,不要盲目和別人比。
競賽終究要靠實力說話,想要變強,就得吃苦,百煉才可成鋼!!!加油吧!
日誌3月18日
題目 給你單鏈表的頭指標 head 和兩個整數 left 和 right 其中 left right 請你反轉從位置 left 到位置 right 的鍊錶節點,返回 反轉後的鍊錶 class solution object defreversebetween self,head,left,right...
5月18日學習總結
上節課老師教授了兩種方式解決刪除vector中資料排序混亂問題,下面是通過虛刪的方式重新寫的 這種方式適合資料類中有很多中資料的情況,用multimap時存vector中的下標,但是像這種通訊錄只有姓名和 號碼的類,直接用的multimap就行了。includeusing namespace std...
2023年9月18日總結
這幾天各種綜合測評的事感覺狀態沒有自己想象中的好,當然這也不是自己不好好看部落格的理由。這幾天沉迷於數論中無法自拔,又找了一些容斥定理的東西,找了乙個總結性的部落格,然後前幾道還好,後來有一道組合數的題卡了我兩天,今天上概率論的時候突然恍然大悟。題意是 給出乙個方程 x1 x2 x3 x4 x5 x...