洛谷P5071 此時此刻的光輝

2022-04-30 09:33:10 字數 2655 閱讀 1069

解:先分解質因數。考慮按照質因數大小是否大於√分類。

大於的就是乙個數顏色個數,莫隊即可n√m。

小於的直接列舉質因數做字首和然後o(1)查詢。總時間複雜度n(√m + σ(√v))。

發現我們t飛了,發現莫隊的複雜度較優,而處理小於√v的質因數較劣。我們平衡一下。

把界調整到1000。這樣比lm大的至多兩個,莫隊常數*2。而後半部分的複雜度就變成了nσ(3√v),可以通過本題。

1 #include 2

3const

int n = 100010, mo = 19260817;4

5 inline char

gc()

1011 template inline void read(t &x)

17while(c >= '

0' && c <= '9'

) 21

return;22

}2324int ex[n], p[n], a[n], lc[n], rc[n], fr[n], top, x[n * 2

], xx, inv[n], bin[n], ans, ans[n], sum[n], exx[n];

25bool

vis[n];

26 std::vectorv[n], v2[n];

2728

struct

node

34}node[n];

3536 inline void getp(int

n) 43}44

return;45

}4647 inline void add(int

y) 53 ++bin[x];

54 ans = 1ll * ans * (bin[x] + 1) %mo;55}

56if

(exx[y])

61 ++bin[x];

62 ans = 1ll * ans * (bin[x] + 1) %mo;63}

64return;65

}6667 inline void del(int

y) 75}76

if(exx[y]) 83}

84return;85

}8687 inline void solve(int

x) 95}96

if(x > 1) printf("

%d "

, x);

97 puts(""

);98

return;99

}100

101int

main()

119if

(cnt)

123}

124if(x == 1) continue

;125

for(; j <= top; j++)

132}

133if(x > 1

) 137

}138

139 std::sort(x + 1, x + xx + 1

);140 xx = std::unique(x + 1, x + xx + 1) - x - 1

;141

for(register int i(1); i <= n; ++i)

146if

(exx[i])

149}

150151

for(register int i(1); i <= m; ++i)

156 inv[0] = inv[1] = 1

;157

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

160161

for(register int i(1); i <= fr[n]; ++i)

166167 std::sort(node + 1, node + m + 1

);168

169 ans = 1

;170 add(1

);171

int l = 1, r = 1

;172

for(register int i = 1; i <= m; i++)

176while(node[i].l

179while(node[i].r

182while(l

185 ans[node[i].id] =ans;

186//

printf("ans %d = %d \n", node[i].id, ans);

187}

188189

///step 2

190191

for(register int i(1); p[i] <= lm; ++i)

198}

199for(register int j(1); j <= m; ++j)

203}

204205

for(register int i(1); i <= m; ++i)

208209

return0;

210 }

ac**

P5071 Ynoi2015 此時此刻的光輝

傳送門 lxl大毒瘤 首先乙個數的因子個數就是這個數的每個質因子的次數 1的積,然後考慮把每個數分解質因子,用莫隊維護,然後我交上去就0分了 如果是上面那樣的話,我們每一次移動指標的時間複雜度是o 這個數的質因子個數 再加上我人傻常數大,t很正常 於是按照memset0的說法,可以預處理質因子的字首...

洛谷P5049 洛谷P5022 題解 旅行

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

洛谷練習P2279 P1346

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