題面
一道找規律好題...
首先,我們肯定只能一位一位的統計答案,考慮從高位向低位統計,顯然這樣要方便的多.
對於第i位,我們統計從$a[i+1]*10^i+0$到$a[i+1]*10^i+a[i]*10^-1$對答案的貢獻.
($a[i]$表示原數的第i位)
顯然0~10^(i-1)-1中的每乙個數都是作為上述某個數的一部分出現過的,且他們的出現次數都為a[i](第i位從0~a[i]-1,最後一位除外,出現a[i]+1次).所以有$(a[i]+(i==1))*sum[i-1]$的貢獻.
(sum[i-1]表示0~10^(i-1)-1對答案的總貢獻)
然後考慮剩下的高位對答案的貢獻.首先考慮第i位,第i位的數字從0~a[i]-1出現的次數都為10^(i-1),第i位以前的數字與原數第i位以前的數字相同,所以前i位對答案的貢獻為:
$(a[i]+(i==1))*s[i+1]+num[a[i]-(i!=1)])*ten[i-1].$
(s[i+1]表示前i-1位的字首和,注意是從高位往低位,num[i]表示0~9的字首和)
eg:123
i==3 統計0~99 (1*0+0)*10^2+1*900
i==2 統計100~119 (2*1+1)*10^1+2*45
i==1 統計120~123 (3*4+6)*10^0+4*0
ans=1038
洛谷 P4768 NOI2018 歸程
題目 歸程 歸程 思路 1 一種海拔 30 求最短路。詢問時,海拔 0,輸出0 否則輸出dist v 2 鏈 15 離散化。預處理出不同海拔 每個點開始到起點的答案,查表輸出。3 樹 10 樹上倍增。4 kruskal重構樹 樹上倍增。做kruskal時,在並查集路徑壓縮時,同時存下樹的心態。即,在...
洛谷 P2048 NOI2010 超級鋼琴
給出乙個序列,求和最大的k個連續子串行的和,且連續子串行長度在l與r之間.首先預處理出字首和,我們可以從左端點開始考慮,若左端點為i,則右端點在i l 1與i r 1之間,那麼可以計算出這些區間的最大值,然後放到堆裡去,每次從堆中取出最大值加到ans中後再將該區間左右兩區間的最大值放入堆中.也就是說...
洛谷P4174 NOI2006 最大獲利
新的技術正衝擊著手機通訊市場,對於各大運營商來說,這既是機遇,更是挑戰。thu 集團旗下的 cs t 通訊公司在新一代通訊技術血戰的前夜,需要做太多的準備工作,僅就站址選擇一項,就需要完成前期市場研究 站址勘測 最優化等專案。在前期市場調查和站址勘測之後,公司得到了一共 n 個可以作為通訊訊號中轉站...