P1447 [NOI2010] 容斥原理
題意
題解
對於任一顆植物,設其座標為 ( x , y ) (x,y) (x,y),能量損失為 2 × [ g c d ( x , y ) − 1 ] − 1 = 2 × g c d ( x , y ) − 1 2\times [gcd(x,y)-1]-1=2\times gcd(x,y)-1 2×[gcd(x,y)−1]−1=2×gcd(x,y)−1,於是答案為 ∑ i = 1 n ∑ j = 1 m [ 2 × g c d ( i , j ) − 1 ] = 2 × ∑ i = 1 n ∑ j = 1 m g c d ( i , j ) − n × m \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[2\times gcd(i,j)-1]=2\times\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)-n\times m i=1∑nj=1∑m[2×gcd(i,j)−1]=2×i=1∑nj=1∑mgcd(i,j)−n×m。
考慮最大公約數相同的數對數量,則需要列舉 m a x ( n , m ) max(n,m) max(n,m) 個公約數。設 f ( x ) f(x) f(x) 為區域中最大公約數為 x x x 的數對,不容易直接求解,考慮容斥原理。若某一數對存在公約數 x x x 則其最大公約數 g c d ( i , j ) ≥ x gcd(i,j)\geq x gcd(i,j)≥x,那麼列舉區域內的 f [ k x ] , k ∈ Z + f[kx],k\in Z^+ f[kx],k∈Z+,將其減去即可。估計複雜度為 O ( l i m i → ∞ ∑ i = 1 m a x ( n , m ) m a x ( n , m ) i ) = O ( n l o g n ) O(lim_{i\to \infty}\sum\limits_{i=1}^{max(n,m)}\frac{max(n,m)}{i})=O(nlogn) O(limi→∞i=1∑max(n,m)imax(n,m))=O(nlogn)
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;
#define maxn 100005
typedef long long ll;
ll f[maxn];
int main()
{
ll n, m, res = 0;
scanf("%lld%lld", &n, &m);
ll limit = max(n, m);
for (ll i = limit; i; --i)
{
f[i] = (n / i) * (m / i);
for (int j = (i << 1); j <= limit; j += i)
f[i] -= f[j];
res += i * f[i];
}
printf("%lld\n", res * 2LL - n * m);
return 0;
}
相關文章
- 容斥原理
- 【模板】容斥原理
- 容斥原理學習筆記筆記
- 容斥原理——數學知識
- 容斥
- 反射容斥反射
- HDU 4135 Co-prime(容斥原理+分解質因數)
- Min-Max 容斥
- lg容斥與反演
- cf449D. Jzzhu and Numbers(容斥原理 高維字首和)
- HDU 4135——Co-prime(容斥原理&&二進位制列舉)
- 容斥定理 AtCoder——FizzBuzz Sum Hard
- P4178 Tree——點分治 容斥
- Min-Max 容斥學習筆記筆記
- CodeForces571A. Lengthening Sticks(組合數學-容斥)
- cf900D. Unusual Sequences(容斥 莫比烏斯反演)
- 機率期望進階 + Min-Max容斥 練習題
- 「數學」助力每一個不知死活的容斥夢
- bzoj2007: [Noi2010]海拔
- CF 773 (Div. 1) D. Two Arrays 雙指標 容斥指標
- HashMap擴容原理HashMap
- P2048 [NOI2010] 超級鋼琴
- HashMap原理(二) 擴容機制及存取原理HashMap
- 2024FJCPC-H.螢火的意志-min-max容斥、Prufer序列(Cayley定理)、高維字首和
- Android內容服務ContentService原理淺析Android
- BZOJ2535: [Noi2010]Plane 航空管制2(拓撲排序 貪心)排序
- MySQL慢查詢記錄原理和內容解析MySql
- HashMap的底層結構、原理、擴容機制HashMap
- 索尼斥資2.29億美元收購Insomniac GameGAM
- CrazyLabs斥資50萬美元打造首家CrazyHub落戶印度
- Web前端效能優化_CDN(內容釋出網路)、CDN工作原理Web前端優化
- k8s 自動擴縮容HPA原理及adapter配置詳解?K8SAPT
- 小白也能看懂的JDK1.8前_HashMap的擴容機制原理JDKHashMap
- 深入理解Spark 2.1 Core (四):運算結果處理和容錯的原理Spark
- 大手筆:斥資500億美金 大眾集團加速自動駕駛自動駕駛
- 機器人太危險?馬斯克斥資千萬研究人工智慧機器人馬斯克人工智慧
- 戴爾斥資1億美元收購雲編排初創公司CloudifyCloud
- 大手筆!思科將斥資23.5億美元收購這家網路安全公司!