、这个题直接上反演可以化成:

然后后面的部分是可以预处理的,最简单的预处理是nlogn的,理论能过,但不知为何死活过不了、

所以就需要o(n)来求后面函数的值

设f=∑d|t  mu(d)*(T/d)^k   这是一个狄利克雷卷积。。

然后由于(T/d)^k 是积性函数、mu是积性函数  所以f也是积性函数

然后记录g【i】为最小质因子的最高次幂的值,就可以筛f了

码(+1-1的需要结合mu的取值理解):

#include<iostream>
#include<cstdio>
using namespace std;
#define P 1000000007
long long daan;
#define N 5000005
#define ll long long
ll f[N],su[N],g[N],last,i,j,T,n,k,tot,sum[N],m,q1[N],q2[N],cnt;
bool he[N];
int ksm(ll a,int b)
{ll ans=1;while(b){if(b&1)ans=ans*a%P;b>>=1;a=a*a%P;          }   return ans;
}
void eular(int o)
{f[1]=1;for(i=2;i<=o;i++){if(!he[i]){su[++tot]=i;
//  mu[i]=-1;  g[i]=i;f[i]=(ksm(i,k)+P-1)%P;    }   for(j=1;j<=tot&&su[j]*i<=o;j++)  {he[i*su[j]]=1;if(i%su[j]==0){   g[i*su[j]]=g[i]*g[su[j]];//    mu[i*su[j]]=0;if(i==g[i])f[su[j]*i]=f[i]*(f[su[j]]+1)%P;else f[su[j]*i]=f[i/g[i]]*f[g[i]*su[j]]%P;break;}else { g[i*su[j]]=su[j];f[i*su[j]]=f[i]*f[su[j]]%P;}   }       }
//for(i=1;i<=o;i++)g[i]=ksm(i,k);   for(i=1;i<=o;i++)
{sum[i]=(f[i]+sum[i-1])%P;
}
}
int main()
{scanf("%d%d",&T,&k);ll o=0;for(i=1;i<=T;i++){scanf("%lld%lld",&q1[i],&q2[i]);o=max(o,q1[i]);o=max(o,q2[i]);          }eular(o);int j;for(j=1;j<=T;j++){daan=0;//scanf("%lld%lld",&n,&m);n=q1[j];m=q2[j];if(n>m)swap(n,m);for(i=1;i<=n;i=last+1){last=min(n/(n/i),m/(m/i));daan=(daan+(sum[last]-sum[i-1])*(m/i)%P*(n/i))%P;}    printf("%lld\n",(daan+P)%P); }
}

2017.9.26 于神之怒加强版 失败总结相关推荐

  1. 2017.7.26 奇怪的道路 失败总结

    做不出来主要是老想着用2^30存每个点的状态,用0 1表示连边奇偶,,就被限制住了 实际上我们应该注意到k=8,这样我们就只用记录前k个.. 其实就是递推的思路,每次加入一个新点,枚举这个点与前K个点 ...

  2. matlab 模拟交易,股票量化投资策略模拟交易系统 [2017.03.26 更新]

    本帖最后由 heawjc 于 2017-3-27 17:13 编辑 本系统允许自主研发量化投资策略并进行模拟交易,从2000多只A股中自动选取并交易:策略研发完成即可对历史行情数据进行模拟调试,验证其 ...

  3. Visual Studio 2017启动x86的Android模拟器失败

     Visual Studio 2017启动x86的Android模拟器失败 Visual Studio 2017默认提供多个Android模拟器.其中,x86模拟器运行较快.但是由于和Hyper-V服 ...

  4. BZOJ 4407: 于神之怒加强版

    4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MB Submit: 560  Solved: 271 [Submit][Status][Dis ...

  5. BZOJ 4407 于神之怒加强版

    题目链接:于神之怒加强版 这个式子还是很妙的,只是我已经思维僵化了 \begin{aligned}  &\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k \\ =& ...

  6. P4449 于神之怒加强版

    P4449 于神之怒加强版 推式子 ∑i=1n∑j=1ngcd(i,j)h\sum_{i = 1} ^{n} \sum_{j = 1} ^{n} gcd(i, j) ^ h i=1∑n​j=1∑n​g ...

  7. 【LG-P4449】于神之怒加强版

    P4449 于神之怒加强版 给定 n , m , k n,m,k n,m,k,计算 ∑ i = 1 n ∑ j = 1 m gcd ⁡ ( i , j ) k \sum_{i=1}^n \sum_{j ...

  8. 于神之怒加强版 [Bzoj 4407]

    题目地址请点击-- 于神之怒加强版 Description 给定 NN , MM , KK . Input 输入有多组数据,输入数据的第一行两个正整数 TT , KK,代表有 TT 组数据,KK 的意 ...

  9. bzoj4407 于神之怒加强版(莫比乌斯反演+线性筛)

    4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MB Submit: 355  Solved: 174 [Submit][Status][Dis ...

最新文章

  1. Tomcat绿色版启动startup.bat一闪问题的解决方法!
  2. 中国制鞋机械行业市场“十四五”规划模式及项目投资分析报告2022-2028年版
  3. Java多线程使用场景
  4. python2.7 end=号报错_python2 post 上传压缩文件编码报错
  5. JS格式化数字保留两位小数点—toFixed()
  6. LinkedList和ArrayList异同
  7. 关于C#对Excel导出时对整行的操作
  8. SQL Server 2005利用分区对海量数据的处理
  9. 项目管理沙龙第二次聚会纪要
  10. 计算机c盘扩容不用软件,电脑分区c盘扩容,这个方法超级简单!
  11. Selenium如何使用句柄方式切换窗口?
  12. 配置电脑计算机从哪几个,电脑硬件配置_电脑硬件配置有哪些
  13. RHCE linux学习第一天
  14. 基于Boost.Asio的异步编程
  15. 解决联想拯救者打开AMD Radeon Software弹出“The version of AMD Radeon Software ......”框问题
  16. Debian10自签CA证书
  17. 计算机控制课设串级回路,华北电力大学过程计算机控制课设DDC串级回路PID闭环...
  18. mysql 入库乱码,如何解决mysql中文入库乱码问题
  19. 红旗linux如何硬盘安装教程,硬盘安装红旗Linux教程
  20. Problem O: 笨熊的盒子

热门文章

  1. Head First设计模式读书笔记八 第九章上 迭代器模式
  2. java项目之Bank银行代码
  3. 注意力机制BAM和CBAM详细解析(附代码)
  4. cmd模式下如何从c盘转换到其他盘
  5. windows绕开强制更新
  6. oracle集群数据库事务配置,在 .NET中使用Oracle数据库事务-安装配置-Oracle频道-中国IT实验室...
  7. 编译原理pl/0 c语言版 pl0.h文件
  8. 利用pandas,pyplot 绘制柱状图
  9. jsp页面div上下滑动_H5单页面手势滑屏切换原理
  10. 电脑开机3秒就重启循环_小米9不开机、循环重启,插充电器屏幕没反应怎么回事?听说是通病,可以维修吗?...