• 果皇的矩阵[matrix]


    #1101. 果皇的矩阵[matrix]

    题目描述

    输入格式

    一行两个数,表示 N,M

    输出格式

    一行一个数,表示答案对 10^9+7 取模后的结果

    样例

    样例输入

    3 3

    样例输出

    38

    数据范围与提示

    数据范围

    100%的数据, N,M<=10^5.

    随便推推式子就好了,虽然不会证复杂度。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<algorithm>
    #include<cstring>
    #define ll long long
    #define maxn 100005
    using namespace std;
    const int ha=1000000007;
    const int mo=1000000006;
    int zs[maxn],t=0,miu[maxn];
    bool v[maxn];
    
    inline int add(int x,int y){
    	x+=y;
    	return x>=ha?x-ha:x;
    }
    
    inline int ksm(int x,int y){
    	int an=1;
    	for(;y;y>>=1,x=x*(ll)x%ha) if(y&1) an=an*(ll)x%ha;
    	return an;
    }
    
    inline void init(){
    	miu[1]=1;
    	for(int i=2;i<=100000;i++){
    		if(!v[i]) zs[++t]=i,miu[i]=-1;
    		for(int j=1,u;j<=t&&(u=zs[j]*i)<=100000;j++){
    			v[u]=1;
    			if(!(i%zs[j])) break;
    			miu[u]=-miu[i];
    		}
    	}
    }
    
    inline int calc(int base,int x,int y){
    	if(base==1) return x*(ll)y%ha;
    	int an=0,T=(y+1);
    	if(T>=mo) T-=mo;
    	for(int i=1,tmp=base;i<=x;i++,tmp=tmp*(ll)base%ha){
    		an=add(an,add(ksm(tmp,T),ha-1)*(ll)ksm(add(tmp,ha-1),ha-2)%ha);
    	}
    	an=add(an,ha-x);
    	return an;
    }
    
    inline int solve(int x,int N,int M){
    	int an=0;
    	for(int d=1,dn,dm;d<=N;d++){
    		dn=N/d,dm=M/d;
    		an=add(an,calc(ksm(d,d*(ll)x%mo),dn,dm));
    	}
    	return an;
    }
    
    int n,m,ans;
    int main(){
    	init();
    	scanf("%d%d",&n,&m);
    	if(n>m) swap(n,m);
    	for(int i=1;i<=n;i++) if(miu[i]){
    		ans=add(ans,add(ha,solve(i*(ll)i%mo,n/i,m/i)*miu[i]));
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    

      

  • 相关阅读:
    js 绑定事件没有触发的离奇事件
    TweenMax 中 tweenTo
    TweenMax 中 to,staggerTo 的第 4 、5 个参数
    Mongodb 数据库操作
    cocos2dx骨骼动画Armature源码分析(一)
    TexturePacker大图还原成小图工具带源码
    通过JavaScript原型链理解基于原型的编程
    webpack 之(25) output配置详解
    webpack 之(24) entry配置详解
    webpack 之(23) 优化配置 总结
  • 原文地址:https://www.cnblogs.com/JYYHH/p/8573550.html
Copyright © 2020-2023  润新知