Codeforces Round #589 (Div. 2) C.Primes and Multiplication (数学推导+容斥原理+快速幂)

本文介绍了如何使用容斥原理和快速幂解决Codeforces Round #589 (Div. 2) C.Primes and Multiplication的问题。通过数学推导,作者分析了题目并给出了非最优解的思路,探讨了如何计算每个项的出现次数,并提供了31ms的代码实现。
摘要由CSDN通过智能技术生成

写在前面

需要学会的前置技能:
快速幂
一颗热爱学习的心

笔者是一名十八线蒟蒻ACMer ACMerACMer,如果文章有误,请在评论区下留言,我会尽快处理,非常感谢!
注:这个方法并不是最优的,只是笔者在当时想到的一种方法,关于最优方法,各位可以看看出题人自己给出的题解。比较简洁。
再次重申!本文描述的不是最优解!

原题体面

时间限制:1s
空间限制:256 MB
Let’s introduce some definitions that will be needed later.
Let p r i m e ( x ) prime(x) prime(x) be the set of prime divisors of x x x. For example, p r i m e ( 140 ) = ( 2 , 5 , 7 ) prime(140)=(2,5,7) prime(140)=(2,5,7), p r i m e ( 169 ) = ( 13 ) prime(169)=(13) prime(169)=(13).
Let g ( x , p ) g(x,p) g(x,p) be the maximum possible integer p k p^k pk where k k k is an integer such that x x x is divisible by p k p^k pk. For example:
g ( 45 , 3 ) = 9 g(45,3)=9 g(45,3)=9 ( 45 45 45 is divisible by 3 2 = 9 3^2=9 32=9 but not divisible by 3 3 = 27 3^3=27 33=27),
g ( 63 , 7 ) = 7 g(63,7)=7 g(63,7)=7 ( 63 63 63 is divisible by 7 1 = 7 7^1=7 71=7 but not divisible by 7 2 = 49 7^2=49 72=49).
Let f ( x , y ) f(x,y) f(x,y) be the product of g ( y , p ) g(y,p) g(y,p) for all p p p in p r i m e ( x ) prime(x) prime(x). For example:
f ( 30 , 70 ) = g ( 70 , 2 ) ⋅ g ( 70 , 3 ) ⋅ g ( 70 , 5 ) = 2 1 ⋅ 3 0 ⋅ 5 1 = 10 f(30,70)=g(70,2)⋅g(70,3)⋅g(70,5)=2^1⋅3^0⋅5^1=10 f(30,70)=g(70,2)g(70,3)g(70,5)=213051=10,
f ( 525 , 63 ) = g ( 63 , 3 ) ⋅ g ( 63 , 5 ) ⋅ g ( 63 , 7 ) = 3 2 ⋅ 5 0 ⋅ 7 1 = 63 f(525,63)=g(63,3)⋅g(63,5)⋅g(63,7)=3^2⋅5^0⋅7^1=63 f(525,63)=g(63,3)g(63,5)g(63,7)=32507

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值