基本思路:
純模擬,算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 題目要求使得字串和最大,...