果皇的矩阵[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\n",ans);
return 0;
}
果皇的矩阵[matrix]的更多相关文章
- numpy教程:矩阵matrix及其运算
http://blog.csdn.net/pipisorry/article/details/48791403 numpy矩阵简介 NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组ar ...
- python小白之矩阵matrix笔记(updating)
Matrix #python学习之矩阵matrix 2018.4.18 # -*- coding: UTF-8 -*- from numpy import * import numpy as np i ...
- 题解 矩阵 matrix
矩阵 matrix Description 给出一个 n × m 的矩阵.请在其中选择至多 3 个互不相交的,大小恰为 k × k 的子矩阵,使得子矩阵的 权值和最大. Input 第一行三个整数 n ...
- 矩阵matrix
矩阵matrix 1. 矩阵matrix 1.1. 定义由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵.记作: 这m×n 个数称为矩阵A的元素,简称为元,数aij ...
- 变形--矩阵 matrix()
matrix() 是一个含六个值的(a,b,c,d,e,f)变换矩阵,用来指定一个2D变换,相当于直接应用一个[a b c d e f]变换矩阵.就是基于水平方向(X轴)和垂直方向(Y轴)重新定位元素 ...
- 矩阵 matrix
传送门 注意这题时限是2s [问题描述] 有一个n × m的矩阵,你从左上角走到右下角,只能向下和向右走. 每个点上有一个重量v i,j 价值w i,j 的物品,你有一个容量为S的背包,经过一个点你可 ...
- R语言矩阵matrix函数
矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...
- 自定义View(11)**在onDraw中使用矩阵Matrix
1.代码示例 1.1 效果 原图 : 其尺寸为162 x 251,示例中的红点是变形的锚点. 变形之后: 1.2 代码 package com.e.weixin.session.view; impor ...
- 矩阵matrix变换的用法(css3属性transform: matrix)
参数 2D矩阵的表示 matrix(a,b,c,d,e,f),其中6个参数在矩阵的分布: -- -- | a c e | | b d f | | 0 0 1 | -- -- 在CSS3中矩阵的原始值是 ...
随机推荐
- shell脚本,实现奇数行等于偶数行。
请把如下字符串stu494e222fstu495bedf3stu49692236stu49749b91转为如下形式:stu494=e222fstu495=bedf3stu496=92236stu497 ...
- 第六次作业 :使用Excel制作成绩单
- ViewController的lifecycle和autolayout
- codevs 数字三角形集结
添在前面的一句话:初学DP,若有错误,请指出,不能误人子弟,欢迎大家提出意见.水平不高,博客写的比较粗糙,代码也挺丑,请见谅. 最原始的数字三角形: 1220 数字三角形 时间限制: 1 s 空间 ...
- 怎么用js写一个类似于百度输入框的搜索插件
PS:这次做的这个小插件只是在前端实现,并没有经过数据库.需要用到的的框架:1.bootstrap.css的样式 2.Vue.js 最终效果如下: JS部分: $(window).click(func ...
- Python发行版(编译器)
一.Python编译器简介 根据实现Python编译器语言一般分为以下几种: 1.1.CPython 标准的Python,解释型编译器. Python:标准的CPython版本,即官方发布版本. IP ...
- HAL——学习SysTick
开始: 1.嵌套向量中断寄存器 (NVIC): 嵌套向量中断控制器 (NVIC) 和处理器内核接口紧密配合,可以实现低延迟的中断处理和晚到中断的高效处理.包括内核异常在内的所有中断均通过 NVIC 进 ...
- UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 167: illegal multibyte sequence
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 167: illegal multibyte sequence文件 ...
- menu JPopupMenu JTabbedPane
菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中. 菜单组件由菜单栏 (MenuBar).菜单(Menu)和菜单项(Men ...
- C语言内存函数
http://see.xidian.edu.cn/cpp/u/hs3/ 函数 说明 calloc() 分配内存空间 free() 释放内存空间 getpagesize() 取得内存分页大小 mallo ...