POJ 3904 Sky Code 容斥原理

2021-06-23 01:30:26 字數 513 閱讀 1440

題意:選出最大公約數為1的四元組的方案

思路:容斥原理 總的方案c(n,4)減去t(1)+t(2)-t(3)+...+(-)^kt(k)

t(i)表示四元組質因子的個數為i的方案數

#include #include #include using namespace std;

const int maxn = 10010;

typedef long long ll;

int a[maxn];

int b[maxn];

int cnt[maxn];

int n, m;

//返回a^p mod n 快速冪

bool vis[maxn];

int prime[maxn];

ll c(ll n, ll m)

return ans;

}int main()

}if(x > 1)

prime[sum++] = x;

for(int j = 1; j < (1<

POJ3904 Sky Code 容斥原理

這道題很容易想到用總的情況減去不互素的情況,需要統計不同素因子對應的資料個數,但這樣會多算 比如2的因子減過一次,3的因子減過一次,這時6的情況 eg 6,12,18,24 就多減了一次 因此想到用容斥原理。問題的關鍵在於,怎麼得到不同素因子組合對應的情況。附上大佬部落格orz 這篇部落格講的很清楚...

poj3904 容斥原理)

可以得到這樣的關係 奇數加 偶數減 題目大意 給一串數字,求解互質四元組的個數 注意不必兩兩互質 解題思路 網上有很多 但是詳細講解的很少,這裡結合筆者的思路詳細論述一下解題思路,耐心一看。首先容易想到,想計算不互質的四元組的個數,再用總的減去,關鍵是怎樣計數不互質四元組的個數?列舉公約數,對於同乙...

poj 3904 容斥原理 質因數分解

題意 給你一串數字,問選擇4個數且這四個數的最大公因數為1的選法為多少種 解法 很容易想到容斥原理,答案為選擇四個數的所有種數 四個數存在最大公因數為質數 四個數存在最大公因數為兩個質數之積 四個數存在最大公因數為三個質數之積。就是處理各個由質因子相乘得到的因子的數量比較麻煩。首先,題目給的資料範圍...