【2017多校】HDU6053 TrickGCD 【莫比乌斯】
来源:互联网 发布:搜狗搜索sem优化师 编辑:程序博客网 时间:2024/06/08 07:37
ans=∑ni=1∏k=n/ik=1ksum[(k+1)∗i−1]−sum[k∗i−1]
#include<stdio.h>#include<iostream>#include<stdlib.h>#include<algorithm>#include<vector>#include<string.h>#include<string>#include<math.h>#include<memory.h>#include<queue>#define ll long long#define pii pair<int,int>#define pll pair<ll,ll>#define MEM(a,x) memset(a,x,sizeof(a))#define lowbit(x) ((x)&-(x))using namespace std;//const int inf=0x3f3f3f3f;const int MOD = 1e9+7;const int N = 1e5 + 5;const int inf=MOD;const int MAXN = 100000;bool check[MAXN+10];int prime[MAXN+10];int mu[MAXN+10];void Moblus(){ memset(check,false,sizeof(check)); mu[1] = 1; int tot = 0; for(int i = 2; i <= MAXN; i++) { if( !check[i] ){ prime[tot++] = i; mu[i] = -1; } for(int j = 0; j < tot; j++) { if(i * prime[j] > MAXN) break; check[i * prime[j]] = true; if( i % prime[j] == 0){ mu[i * prime[j]] = 0; break; }else{ mu[i * prime[j]] = -mu[i]; } } }}int sum[N];int a[N];ll qPow(ll a,int n){ ll ans=1; ll t=a%MOD; while(n){ if(n&1){ ans=(ans*t)%MOD; } n>>=1; t=(t*t)%MOD; } return ans;}ll w(int x,int n){ if(sum[x-1]){ return 0; } ll ans=1; for(int i=1;i*x<N-1;++i){ ll t=qPow(i,sum[min((i+1)*x-1,N-1)]-sum[min(N-1,i*x-1)]); ans=(ans*t)%MOD; } return ans;}ll slove(int n){ ll ans=0; for(int i=2;i<=n;++i){ ans+=(-w(i,n)*mu[i])%MOD; ans%=MOD; } return (ans+MOD)%MOD;}int main(){ //freopen("/home/lu/code/r.txt","r",stdin); Moblus(); int T; scanf("%d",&T); for(int tt=1;tt<=T;++tt){ int n; MEM(sum,0); scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d",&a[i]); ++sum[a[i]]; } for(int i=1;i<N;++i){ sum[i]+=sum[i-1]; } printf("Case #%d: %lld\n",tt,slove(n)); } return 0;}
阅读全文
0 0
- 【2017多校】HDU6053 TrickGCD 【莫比乌斯】
- hdu6053 TrickGCD 莫比乌斯反演
- [莫比乌斯反演] HDU6053: [2017 多校-第2场] TrickGCD
- HDU6053-TrickGCD 容斥原理+莫比乌斯反演
- hdu6053 TrickGCD 莫比乌斯函数 容斥原理
- [莫比乌斯函数][分段] hdu6053 TrickGCD (2017 Multi-University Training Contest
- 【HDU6053】TrickGCD(莫比乌斯容斥)
- TrickGCD————(hdu6053)2017多校(莫比乌斯容斥)
- 2017杭电多校联赛第二场-TrickGCD (hdu6053)莫比乌斯容斥
- HDU6053(莫比乌斯)
- hdu6053 莫比乌斯函数
- 莫比乌斯函数 hdu6053
- hdu6053-莫比乌斯反演
- HDU6053-TrickGCD
- hdu6053 TrickGCD
- HDU6053-TrickGCD
- HDU6053 TrickGCD
- TrickGCD hdu6053
- Mybatis Generator最完整配置详解
- swift_038(Swift之guard关键字(守护))
- ios之Autolayout的运用
- Makefile详解(一)
- poi操作excel文件
- 【2017多校】HDU6053 TrickGCD 【莫比乌斯】
- 自己学着写一个BindView来减少findViewById的应用
- Hibernate---缓存
- react-native之初识react-native
- ZooKeeper典型应用——分布式锁
- 用CMake为Qt生成visual studio的工程
- 洛谷P1369 矩形
- linux网络编程,进程间的通信之互斥锁与条件变量
- 杭电oj1014 互质就可以了