DDDDD 问题 
给一个正整数 N N N D D D D D D D D … D D ‾ \overline{DD\dots DD} D D … D D N N N 
1 ≤ N ≤ 2 × 1 0 9 1\le N\le 2\times 10^9 1 ≤ N ≤ 2 × 1 0 9 
 
显然 D D … D D ‾ \overline{DD\dots DD} D D … D D D × ( 1 0 k − 1 ) 9 \frac{D\times(10^k-1)}{9} 9 D × ( 1 0 k − 1 )  
N ∣ D × ( 1 0 k − 1 ) 9 9 N ∣ D × ( 1 0 k − 1 ) 设   d = gcd  ( D , 9 N ) : 9 N d ∣ 1 0 k − 1 1 0 k ≡ 1 ( m o d 9 N d ) N\mid\frac{D\times(10^k-1)}{9}\\
9N\mid D\times (10^k-1)\\
设\,d=\gcd(D,9N):\\
\frac{9N}{d}\mid10^k-1\\
10^k\equiv1\pmod{\frac{9N}{d}}
 N ∣ 9 D × ( 1 0 k − 1 )  9 N ∣ D × ( 1 0 k − 1 ) 设 d = g cd( D , 9 N ) : d 9 N  ∣ 1 0 k − 1 1 0 k ≡ 1 ( m o d d 9 N  ) 
此时,若 10 10 1 0 9 N d \frac{9N}{d} d 9 N  
考虑如何求出 k k k 
1 0 φ ( 9 N d ) ≡ 1 ( m o d 9 N d ) 10^{\varphi(\frac{9N}{d})}\equiv 1\pmod{\frac{9N}{d}}
 1 0 φ ( d 9 N  ) ≡ 1 ( m o d d 9 N  ) 
此时最小的 k k k φ ( 9 N d ) \varphi(\frac{9N}{d}) φ ( d 9 N  ) 
证明 
设 φ ( 9 N d ) = M \varphi(\frac{9N}{d})=M φ ( d 9 N  ) = M k = x k=x k = x x ∤ M x\nmid M x ∤ M M = q x + r M=qx+r M = q x + r 
因为 1 0 x ≡ 1 ( m o d 9 N d ) 10^x\equiv 1\pmod{\frac{9N}{d}} 1 0 x ≡ 1 ( m o d d 9 N  ) 1 0 q x ≡ 1 ( m o d 9 N d ) 10^{qx}\equiv 1\pmod{\frac{9N}{d}} 1 0 q x ≡ 1 ( m o d d 9 N  ) 
由于 1 0 M ≡ 1 ( m o d 9 N d ) 10^M\equiv 1\pmod{\frac{9N}{d}} 1 0 M ≡ 1 ( m o d d 9 N  ) 1 0 q x + r ≡ 1 ( m o d 9 N d ) 10^{qx+r}\equiv1\pmod{\frac{9N}{d}} 1 0 q x + r ≡ 1 ( m o d d 9 N  ) 1 0 r ≡ 1 ( m o d 9 N d ) 10^r\equiv 1\pmod{\frac{9N}{d}} 1 0 r ≡ 1 ( m o d d 9 N  ) 
由于 0 ≤ r < x 0\le r<x 0 ≤ r < x r r r x x x 
 
那么枚举 φ ( 9 N d ) \varphi(\frac{9N}{d}) φ ( d 9 N  ) 
树的带权拓扑序问题 
给定一棵有根树,每个点有个权值 a i a_i a i  p p p ∑ a i p i \sum a_ip_i ∑ a i  p i  
 
设 a a a a u a_u a u  p u = p f a u + 1 p_u=p_{fa_u}+1 p u  = p f a u   + 1 
那么不妨把 u u u f a u fa_u f a u  a u a_u a u  
对于两个连通块 x , y x,y x , y a i a_i a i  ( s i z x , s m x ) (siz_x,sm_x) ( s i z x  , s m x  ) ( s i z y , s m y ) (siz_y,sm_y) ( s i z y  , s m y  ) x x x y y y s i z x × s m y siz_x\times sm_y s i z x  × s m y  y y y x x x s i z y × s m x siz_y\times sm_x s i z y  × s m x  x x x y y y s i z x × s m y ≥ s i z y × s m x siz_x\times sm_y\ge siz_y\times sm_x s i z x  × s m y  ≥ s i z y  × s m x  s m x s i z x ≥ s m y s i z y \frac{sm_x}{siz_x}\ge\frac{sm_y}{siz_y} s i z x  s m x   ≥ s i z y  s m y   
那么把连通块权值当成 s m s i z \frac{sm}{siz} s i z s m  
合并 u u u ( s i z u , s m u ) (siz_u,sm_u) ( s i z u  , s m u  ) f a u fa_u f a u  ( s i z f a u , s m f a u ) (siz_{fa_u},sm_{fa_u}) ( s i z f a u   , s m f a u   ) s i z f a u × s m u siz_{fa_u}\times sm_u s i z f a u   × s m u  
使用堆维护,时间复杂度 O ( n log  n ) O(n\log n) O ( n log  n ) 
区间虚树大小问题 
给定一棵有点权的有根树和一个节点序列 a a a q q q a [ l , r ] a_{[l,r]} a [ l , r ]  
可以离线。
 
可以回滚莫队维护,O ( n n ) O(n\sqrt n) O ( n n  ) 
也可以先树剖再启发式合并维护每个点子树中点在 a a a u u u 
具体的,令 u u u a a a 
剖分完令 w u w_u w u  u u u s t u st_u s t u  u u u a a a s t u st_u s t u  s t h e v u st_{hev_u} s t h e v u   h e v u hev_u h e v u  u u u u u u a a a s t u st_u s t u  u u u v v v x ∈ s t v x\in st_v x ∈ s t v  s t u st_u s t u  
每次插入 x x x l b , r b lb,rb l b , r b l ∈ [ l b , x ] , r ∈ [ x , r b ] l\in [lb,x],r\in [x,rb] l ∈ [ l b , x ] , r ∈ [ x , r b ] [ l , r ] [l,r] [ l , r ] w u w_u w u  
这样由于轻儿子 s t v st_v s t v  s t u st_u s t u  O ( n log  2 n ) O(n\log ^2n) O ( n log  2 n ) 
参考:【2024NOI模拟赛11】项链 做题记录