题解:这个题目看着挺吓人的,如果仔细想想的话,应该能想出来。题解还是挺好的理解的。

首先设gcd(a1,a2,a3...an)=i,那么a1~an一定是i的倍数,所以ai一共有k/i种取值。有n个数,所有就有(k/i)^n种情况。光是这样还是不行的,因为a1~an的gcd可能为j*i。所以我们要减去2*i,3*i......j*i<=k。倒着来就可以了,复杂度应该是o(nlogn)

code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e5+;
const ll MOD=1e9+;
ll dp[N];
ll ksm(ll x,ll y){
ll res=;
while(y){
if(y&) res=res*x%MOD;
x=x*x%MOD;
y>>=;
}
return res%MOD;
}
int main(){
ll n,k;
cin>>n>>k;
ll ans=;
for(ll i=k;i>=;i--){
dp[i]=ksm(k/i,n);
for(ll j=*i;j<=k;j+=i) dp[i]=(dp[i]-dp[j]+MOD)%MOD;
ans=(ans+i*dp[i]+MOD)%MOD;
}
cout<<ans<<endl;
return ;
}

最新文章

  1. Why many EEG researchers choose only midline electrodes for data analysis EEG分析为何多用中轴线电极
  2. AtCoder Grand Contest 008 A
  3. jquery 获取和设置 checkbox radio 和 select option的值?
  4. jquery插件formValidator的ajaxValidator传参数问题
  5. think straight系列读书笔记之《暗时间》
  6. Xcode6新建的工程没有Frameworks文件夹了?!原来是这样
  7. Linux Shell编程(24)——命令替换
  8. C语言的本质(12)——指针与函数
  9. 开发一个微信小程序项目教程
  10. Node.js web快速入门 --&#160;KoaHub.js
  11. .Net中的AOP系列之《将AOP作为架构工具》
  12. 深度学习的异构加速技术(一):AI 需要一个多大的“心脏”?
  13. python之字符串及其方法---整理集
  14. JavaScript 对象(上)
  15. 对数log
  16. java子类数组的引用转换成超类数组的引用
  17. 魔方Newlife.Cube权限系统的使用及模版覆盖详解
  18. 图解PCB布线数字地、模拟地、电源地,单点接地抗干扰!
  19. C# 自定义特性Attribute
  20. easyui datagrid如何获取到每行的文本框

热门文章

  1. C语言结构体实现类似C++的构造函数
  2. python环境变量忘记配置
  3. 李宏毅老师机器学习课程笔记_ML Lecture 2: Where does the error come from?
  4. OpenCV-Python 模板匹配 | 三十一
  5. 技术大佬:我去,你竟然还在用 try–catch-finally
  6. spring-cloud-gateway静态路由
  7. # CodeCraft-20 (Div. 2)
  8. C/C++知识总结 三 C/C++数据类型与输入输出
  9. Java并发基础05. 传统线程同步通信技术
  10. 多线程学习笔记(四)---- Thread类的其他方法介绍