2017.9.26 于神之怒加强版 失败总结
、这个题直接上反演可以化成:
然后后面的部分是可以预处理的,最简单的预处理是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 于神之怒加强版 失败总结相关推荐
- 2017.7.26 奇怪的道路 失败总结
做不出来主要是老想着用2^30存每个点的状态,用0 1表示连边奇偶,,就被限制住了 实际上我们应该注意到k=8,这样我们就只用记录前k个.. 其实就是递推的思路,每次加入一个新点,枚举这个点与前K个点 ...
- matlab 模拟交易,股票量化投资策略模拟交易系统 [2017.03.26 更新]
本帖最后由 heawjc 于 2017-3-27 17:13 编辑 本系统允许自主研发量化投资策略并进行模拟交易,从2000多只A股中自动选取并交易:策略研发完成即可对历史行情数据进行模拟调试,验证其 ...
- Visual Studio 2017启动x86的Android模拟器失败
Visual Studio 2017启动x86的Android模拟器失败 Visual Studio 2017默认提供多个Android模拟器.其中,x86模拟器运行较快.但是由于和Hyper-V服 ...
- BZOJ 4407: 于神之怒加强版
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MB Submit: 560 Solved: 271 [Submit][Status][Dis ...
- BZOJ 4407 于神之怒加强版
题目链接:于神之怒加强版 这个式子还是很妙的,只是我已经思维僵化了 \begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k \\ =& ...
- P4449 于神之怒加强版
P4449 于神之怒加强版 推式子 ∑i=1n∑j=1ngcd(i,j)h\sum_{i = 1} ^{n} \sum_{j = 1} ^{n} gcd(i, j) ^ h i=1∑nj=1∑ng ...
- 【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 ...
- 于神之怒加强版 [Bzoj 4407]
题目地址请点击-- 于神之怒加强版 Description 给定 NN , MM , KK . Input 输入有多组数据,输入数据的第一行两个正整数 TT , KK,代表有 TT 组数据,KK 的意 ...
- bzoj4407 于神之怒加强版(莫比乌斯反演+线性筛)
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MB Submit: 355 Solved: 174 [Submit][Status][Dis ...
最新文章
- Tomcat绿色版启动startup.bat一闪问题的解决方法!
- 中国制鞋机械行业市场“十四五”规划模式及项目投资分析报告2022-2028年版
- Java多线程使用场景
- python2.7 end=号报错_python2 post 上传压缩文件编码报错
- JS格式化数字保留两位小数点—toFixed()
- LinkedList和ArrayList异同
- 关于C#对Excel导出时对整行的操作
- SQL Server 2005利用分区对海量数据的处理
- 项目管理沙龙第二次聚会纪要
- 计算机c盘扩容不用软件,电脑分区c盘扩容,这个方法超级简单!
- Selenium如何使用句柄方式切换窗口?
- 配置电脑计算机从哪几个,电脑硬件配置_电脑硬件配置有哪些
- RHCE linux学习第一天
- 基于Boost.Asio的异步编程
- 解决联想拯救者打开AMD Radeon Software弹出“The version of AMD Radeon Software ......”框问题
- Debian10自签CA证书
- 计算机控制课设串级回路,华北电力大学过程计算机控制课设DDC串级回路PID闭环...
- mysql 入库乱码,如何解决mysql中文入库乱码问题
- 红旗linux如何硬盘安装教程,硬盘安装红旗Linux教程
- Problem O: 笨熊的盒子
热门文章
- Head First设计模式读书笔记八 第九章上 迭代器模式
- java项目之Bank银行代码
- 注意力机制BAM和CBAM详细解析(附代码)
- cmd模式下如何从c盘转换到其他盘
- windows绕开强制更新
- oracle集群数据库事务配置,在 .NET中使用Oracle数据库事务-安装配置-Oracle频道-中国IT实验室...
- 编译原理pl/0 c语言版 pl0.h文件
- 利用pandas,pyplot 绘制柱状图
- jsp页面div上下滑动_H5单页面手势滑屏切换原理
- 电脑开机3秒就重启循环_小米9不开机、循环重启,插充电器屏幕没反应怎么回事?听说是通病,可以维修吗?...