雜題訓練之二

2022-01-29 09:17:02 字數 513 閱讀 6077

基本思路:

純模擬,算0前的最後1位。

末尾0就是多個10相乘得來的 ,

我們只需要在相乘算個位數時將末尾0的個數的2,5提前約去即可

計算末尾0的個數,只需要計算1~n中有多少個因數5,

因為因數2的個數肯定比5多 ,每一組2,5湊成10.

計算出來後,在從1~n相乘時,約去對應個數的2,5,再取 個位,結尾肯定沒有0,膜10得來的數就是答案。

具體見**

code by jklover:

#includeusing namespace std;

int main()

}k1=k2;//2也只需要除這麼多

for(int i=2;i<=n;i++)

while(!(p%5)&&k2)//同理

s*=p%10;

s%=10;//只用計算個位

}printf("%d",s);

return 0;

}

雜題訓練之十一

題目大意 詢問樹上a到b,c到d的兩條路徑是否相交 分析 我們容易發現,如果相交,記 x lca a,b y lca c,d 則必有x在cd路徑上或y在ab路徑上 關鍵就在於如何判斷它在路徑上 複習 結合如何判斷乙個點 x 是否在一條最短路上 起點 s 終點 t 各跑一次最短路 為了處理dis 如果...

雜題訓練之十

分析 考慮固定左端點l,列舉它 剩下的任務就是找到最小的r,使之 l,r 能夠出現b的子串行 這樣n r 1也就滿足,ans累加 是反著來的,效果是一樣的 學到了 分析 博弈論先考慮終止狀態 切記不要死迴圈的想 先手只剩一條邊時,先手必敗 後手只剩兩條邊時,先手必勝 然後發現本題唯一和博弈論沾邊的就...

雜題訓練之九

昨天和大佬們一起複習了堆 見此題不錯,於是寫一篇題解 題目大意 求長度在 l,r 的範圍的子串和前k大和 分析 考慮暴力一點,把所有滿足條件的字串加入乙個堆中 取的前k次就是前k大 發現這樣不太好 這樣的瓶頸在於要考慮所以字串 包括那些不太有用的 具體實現 對於區間 l,r 題目要求使得字串和最大,...