牛客NC13221 數碼 整除分塊(數論分塊)

2021-10-16 13:02:54 字數 1118 閱讀 3316

牛客nc13221 數碼 整除分塊(數論分塊)

鏈結

題目描述

給定兩個整數 l 和 r ,對於所有滿足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有約數全部寫下來。對於每個寫下來的數,只保留最高位的那個數碼。求1~9每個數碼出現的次數。

輸入描述:

一行,兩個整數 l 和 r (1 ≤ l ≤ r ≤ 10^9)。

輸出描述:

輸出9行。

第 i 行,輸出數碼 i 出現的次數。

示例1輸入

1 4輸出42

1100

000解題思路

分別處理數碼[1,9] 的出現次數,而這個次數具有可減性,因此可以用1 ~ r 的和減去 1 ~ (l - 1) 的和

而約數的數碼只和最高位有關,因此對於數碼 1 ,那麼它只可能是1 ,10…19,100…199 等,是乙個區間段,可以通過整除分塊解決

整除分塊模板

for

(int l=

1,r;l<=n;l=r+1)

整體** :

#include

#include

#include

#include

#include

using

namespace std ;

typedef

long

long ll ;

int l , r ;

inline

intread()

return x ;

}inline ll calc2

(ll n , ll a , ll b)

return ans ;

}inline ll calc

(ll n , ll num)

intmain()

return0;

}

這道題想了好久好久 /(ㄒoㄒ)/~~ 還是太菜菜了

牛客NC18200烟花

總時間限制 1000ms 記憶體限制 262144k 小a有n個烟花,每個烟花代表著互不相同的顏色,對於第i個烟花,它有pi的概率點燃,現在小a要去點燃它們,他想知道產生顏色的期望個數及產生恰好產生k種顏色的概率 第一行兩個整數n,k.接下來一行n個數,第i個數pi表示第i個烟花被點燃的概率 輸出有...

牛客 NC15553 數學考試

思路 先把字首和求出來.類似於dp,當前節點為i的時候,我們要記錄下i之前的連續k個數和的最大值lmax.這就是第一段 然後讓j i k,讓rmax a j a i 這樣然後max max max,lmax rmax 這樣的複雜度是o n 看 include include include incl...

KMP 牛客 NC13253 子串

題目描述 給出乙個正整數n,我們把1 n在k進製下的表示連起來記為s n,k 例如s 16,16 123456789abcdef10,s 5,2 11011100101。現在對於給定的n和字串t,我們想知道是否存在乙個k 2 k 16 使得t是s n,k 的子串。輸入描述 第一行乙個整數n 1 n ...