码迷,mamicode.com
首页 > 其他好文 > 详细

D. Unusual Sequences(容斥)

时间:2018-01-20 22:57:26      阅读:407      评论:0      收藏:0      [点我收藏+]

标签:ace   莫比乌斯反演   efi   ons   容斥   href   seq   none   分享图片   

D. Unusual Sequences

 

隔板法 + 容斥原理

技术分享图片
 1 //容斥(莫比乌斯反演)
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 #define LL long long 
 5 const int mod = 1e9+7;
 6 LL quickpow(LL a, LL b, LL mod){
 7     LL temp = a % mod, res = 1;
 8     while(b){
 9         if(b & 1)  res = res * temp % mod;
10         b >>= 1;
11         temp = temp * temp % mod;
12     }
13     return res;
14 }
15 map<int, LL> mp;
16 
17 LL solve(int x){
18     if(x == 1) return 1;
19     if(mp.count(x)) return mp[x];
20     mp[x] = quickpow(2, x-1, mod);
21     for(int i = 2; i * i <= x; i++){
22         if(x % i == 0){
23             mp[x] = (mp[x] - solve(i) + mod) % mod;
24             if(i != x / i) mp[x] = (mp[x] - solve(x / i) + mod) % mod;
25         }
26     }
27     mp[x] = (mp[x] - solve(1) + mod) % mod;
28     return mp[x];
29 }
30 
31 int main(){
32     ios::sync_with_stdio(0);
33     int x, y;
34     while(cin>>x>>y){
35         if(y % x != 0){
36             cout<<0<<endl;
37         }else{
38             cout<<solve(y / x)<<endl;
39 
40         }
41     }
42 
43 }
View Code

 

D. Unusual Sequences(容斥)

标签:ace   莫比乌斯反演   efi   ons   容斥   href   seq   none   分享图片   

原文地址:https://www.cnblogs.com/yijiull/p/8322024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!