給出乙個範圍[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互素,把這些數都記下來,篩法求素數即可 然後把...