题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5768
题目大意:给n组质数m和余数a,给定范围(x,y),求这之中能整除7的数s。
再排除其中满足 s%m=a的数,问有多少个这样的数。
解题思路:
看题意就知道,这是明显的容斥题,而m又都是质数,可以直接套用中国余数定理。
只要将(7,0)这组数加入余数方程组,就能得到每次的结果。
中国余数定理运算过程中会爆long long,所以要用快速乘。
容斥原理:
先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去
总和S=A+B+C-BnC-Anc-AnB+AnBnC(重叠奇数部分加,偶数部分减)
同余:
两个整数a、b,若它们除以整数m所得的
余数相等,则称a与b对于模m同余或a同余于b模m
记作 a≡b (mod m)
读作 a同余于b模m,或读作a与b对模m同余。
中国余数定理(CRT):
用现代数学的语言来说明的话,中国剩余定理给出了以下的一元线性同余方程组: