Ural 1091. Tmutarakan Exams(容斥原理+组合计数)
给出范围 [1,m] ,要求你从中找到 n 个数,使这 n 个数的 gcd > 1 ,但是个个数都不相同,问有几种选择
由于 n m 的范围都很小 (<=50),所以打一下小于 50 的素数表,我们可以让 gcd = 2 / 3 /4……但是 4 被 2 全包括了,所以只要统计 gcd 为素数的情况,所以又要利用容斥原理,处理 gcd 为多个质数相乘的情况,最后根据组合计数原理, m/gcd 个位置,放 n 个数,答案为。
const int N=50+5;
in...
原创
2020-11-09 10:39:40 ·
249 阅读 ·
0 评论