HDU 5768 容斥原理 中國剩餘定理

2021-07-29 16:09:02 字數 799 閱讀 7371

給出乙個範圍[l,r]以及兩個陣列a,p,要求在這範圍內mod 7 = 0,且mod p[i] != a[i]的數一共有多少個。

容斥原理,只考慮把a[0] = 0,p[0] = 7,只考慮這mod 7 = 0的數,進行容斥。利用中國剩餘定理解同余式組。

#include using namespace std;

typedef long long ll;

void extend_euclid(ll a, ll b, ll &x, ll &y)

extend_euclid(b, a % b, x, y);

ll tmp = x;

x = y;

y = tmp - (a / b) * y;

}ll mul(ll a, ll k, ll m)

return res;

}ll china(ll a, ll m, int n, ll r)

res = (res + m) % m;

if (res && r % m >= res) return r / m + 1;

return r / m;

}ll p[20], a[20];

ll solve(ll x, int n)

}ll tmp = china(mod, div, cnt, x);

if (cnt & 1) res += tmp;

else res -= tmp;

}return res;

}int main()

return 0;

}

HDU 5768 Lucky7 數論 中國剩餘定理

求 l,r 範圍內是7的倍數,同時不滿足任意乙個給定的同余式的數的個數。如範圍為 1,100 不滿足模3餘2或模5餘3的7的倍數有7,21,42,49,70,84,91 故答案為7.其中除數都為非7的素數 105 除數的乘積小於 1018 同余式最多有15個。所有 l,r 範圍內7的倍數減去滿足任意...

hdu 4336 容斥原理

按照解題報告的提示,用容斥原理實現 for int j bg 1 j另解 概率dp,康哥指導的 include include includeusing namespace std double f 1 21 gl 22 int main int i,j,k,n double fz,fm while...

hdu4135 容斥原理

題意 給出a,b,n,求出 a,b 範圍內與n互素的數字的個數。即b範圍內的不與n互素的數減去a範圍內不與n互素的數,把 1,a 1,b 中不與n互素的數分別求出來,再減掉就是和n互素的數了。那麼首先將n分解質因數,因子和因子的倍數可以被除盡,一定不與n互素,把這些數都記下來,篩法求素數即可 然後把...