2017 9 28 CF R2 B 思考記錄

2021-08-08 20:40:11 字數 799 閱讀 5853

題目大意:

給乙個n*n的圖,每個點有點權,求從左上角走到右下角,把一路的點權乘起來,求字尾零個數最小值,並輸出方案

首先0是特例,因為走了他,字尾零個數一定是1

然後如果有數字相乘得到0,那相當於*10,把10分解,它就只跟2和5的個數的最小值有關了

由於2和5的個數乙個點並不能只保留乙個,存多了會t

於是就猜了乙個結論,路徑經過的要麼2最少,要麼5最少

其實很好證得,用數學歸納法:

,如果2不是最少,那想成為最優解,5必須取得比2少,2隨便取,,這時取值只和5有關,

,如果5不是最少,那想成為最優解,2必須取得比5少,5隨便取,,這時取值只和2有關,

∴對於兩種最優解,只和乙個數的個數有關

所以對2和5分別遞推最短路,取min即可

碼:

#include#includeusing namespace std;

int ans=9999999,n,i,j,daan[3000],f[1005][1005],x,er[1005][1005],g[1005][1005],wu[1005][1005];

int main()

else i++;

} } //五的一遍

// 1 you 2 xia

for(i=n;i>=1;i--)

for(j=n;j>=1;j--)

else i++;

} } printf("%d\n",ans);

for(i=1;i<=2*n-2;i++)

else

}}

2017 9 28 lca 失敗總結

序號連續,體現在樹上一點關係都沒有。所以這一條性質用不上就只能暴力了 所以就需要考慮序號連續有什麼用。首先所求的是乙個區間所以就可以用字首和化成兩個點 重要套路 然後求lca往上的距離就可以每個點往上 1,查詢目標點往上的點裡有幾個一 相當於離散差分 然後就可以把兩端的位置都散進字首和裡 然後掃一遍...

2017 9 28 降雨量 思考記錄

論邏輯清晰的重要性 首先大小的關係明擺著是要你建一顆線段樹 然後就可以分類討論了 x沒有 y有 x有 y沒有 x沒有 y沒有 x有 y有 對於都沒有的情況 只可能是maybe 對於乙個沒有的情況,只有可能有false和maybe 對於都有的 可能有true maybe false 對於有的直接查詢,...

CF 2022一月CF之旅

太咕了,太咕了,人快沒了.jpg 雖然考試上是第一道題,但應該第一時間想到dp n100 然後列狀態,前兩維度很容易想到是前i個中選j個,經過思考後,我們要求在選定k個杯子,此時裝水為l,然後選取的最大容積為多少的狀態。之後列dp轉移即可。慚愧 cf1257d 參考題解 2e5資料範圍很容易想到貪心...