洛谷P3935 Calculating(整除分塊)

2022-05-11 03:56:46 字數 1096 閱讀 2723

題目大意:定義 $f(x)=\prod^n_(k_i+1)$,其中 $x$ 分解質因數結果為 $x=\prod^n_^$。求 $\sum^r_f(i)\ mod\ 998244353$。

$1\leq l\leq r\leq 1.6\times 10^$。

先分析一下 $f(x)$ 的本質。

(讀者:不要囉嗦來囉嗦去的好吧!這明顯是 $x$ 的約數個數嗎!是不是想拖延時間?)

好好好,你贏了。我們來看看如何計算。

看到區間 $[l,r]$ 函式求和,我們應該想到拆成字首和 $pre(r)-pre(l-1)$。

現在看一看 $pre(x)=\sum^x_f(i)$ 如何計算。

我們這樣考慮:

$1\sim x$ 中有 $\lfloor\frac\rfloor$ 個 $1$ 的倍數,也就是有 $\lfloor\frac\rfloor$ 個數有約數 $1$。

同理有 $\lfloor\frac\rfloor$ 個數有約數 $2$。

有 $\lfloor\frac\rfloor$ 個數有約數 $3$。

$\dots\dots$

有 $\lfloor\frac\rfloor$ 個數有約數 $i$。

所以 $pre(x)=\sum^x_\lfloor\frac\rfloor$。

這個……不就是整除分塊模板了嗎?

對於一段如何求和難度應該不大,可以自己推出來。

(讀者:喂,別這麼不良心好吧!)

好吧,$[l,r]$ 這段區間的和為 $\lfloor\frac\rfloor(r-l+1)$。

時間複雜度 $o(\sqrt)$,空間複雜度 $o(1)$。

既然是模板題一道,那就直接上**。

1 #include2

using

namespace

std;

3 typedef long

long

ll;4

const ll mod=998244353;5

ll l,r;

6 ll solve(ll x)

12return

ans;13}

14int

main()

整除分塊

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...

洛谷 P1396 營救

題目描述 咚咚咚 查水表!原來是查水表來了,現在 找這麼熱心上門的查表員啊!小明感動的熱淚盈眶,開起了門 媽媽下班回家,街坊鄰居說小明被一群陌生人強行押上了警車!媽媽豐富的經驗告訴她小明被帶到了t區,而自己在s區。該市有m條大道連線n個區,一條大道將兩個區相連線,每個大道有乙個擁擠度。小明的媽媽雖然...