题意:$\sum_{d|n}f(d)=n^{2}-3n+2$,求$\sum_{i=1}^{n}f(i)\mod 10^{9}+7$ , $n \leqslant 10^{9}$ $\left( T \leqslant 500\right)$组数据,只有5组>$10^{6}$

题解:看了式子感觉像是反演,但是呢....

令$S(n)=\sum_{i=1}^{n}f(i)$

那么$S(n)=\sum_{i=1}^{n}\sum_{d|i}f(d)=\sum_{i=1}^{n}f(d)\lfloor\frac{n}{d}\rfloor=\sum_{d=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor} f(d)=\sum_{d=1}^{n}S(\lfloor\frac{n}{d}\rfloor)=\sum_{i=1}^{n}(i-1)*(i-2)$

所以$S(n)=\frac{n*(n-1)*(n-2)}{3}-\sum_{i=2}^{n}f(i)$

所以老套路,预处理$maxn^{\frac{2}{3}}$的S(i),这个可以直接算,总复杂度也是$O(n^{\frac{2}{3}})$

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#define MAXN 5000000
#define mod 1000000007
#define inv 333333336
#define ll long long
using namespace std;
inline ll read()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-''; ch=getchar();}
return x*f;
} int f[MAXN+];
map<int,ll> mp; ll calc(int x)
{
if(x<=MAXN)return f[x];
map<int,ll>::iterator it;
if((it=mp.find(x))!=mp.end())return it->second;
ll sum=1LL*x*(x-)%mod*(x-)%mod*inv%mod;
int last;
for(int i=;i<=x;i=last+)
{
last=x/(x/i);
sum-=1LL*(last-i+)*calc(x/i);
while(sum<)sum+=mod;
}
return (mp[x]=sum);
} int main()
{
for(int i=;i<=MAXN;i++)
f[i]=1LL*(i-)*(i-)%mod;
for(int i=;i<=MAXN;i++)
for(int j=i<<;j<=MAXN;j+=i)
f[j]=(f[j]-f[i]+mod)%mod;
// for(int i=1;i<=10;i++)cout<<f[i]<<endl;
for(int i=;i<=MAXN;i++) f[i]=(f[i]+f[i-])%mod;
for(int t=read();t;t--)
printf("%lld\n",calc(read()));
return ;
}

[hdu5608]function的更多相关文章

  1. 通过百度echarts实现数据图表展示功能

    现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...

  2. hdu5608:function

    $n^2-3n+2=\sum_{d|i}f(i)$,问$f(i)$前$n$项和. 方法一:直接切入! $S(n)=\sum_{i=1}^{n}f(i)=\sum_{i=1}^{n}(i^2-3i+2- ...

  3. jsp中出现onclick函数提示Cannot return from outside a function or method

    在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...

  4. JavaScript function函数种类

    本篇主要介绍普通函数.匿名函数.闭包函数 目录 1. 普通函数:介绍普通函数的特性:同名覆盖.arguments对象.默认返回值等. 2. 匿名函数:介绍匿名函数的特性:变量匿名函数.无名称匿名函数. ...

  5. 在ubuntu16.10 PHP测试连接MySQL中出现Call to undefined function: mysql_connect()

    1.问题: 测试php7.0 链接mysql数据库的时候发生错误: Fatal error: Uncaught Error: Call to undefined function mysqli_con ...

  6. jquery中的$(document).ready(function() {});

    当文档载入时执行function函数里的代码, 这部分代码主要声明,页面加载后 "监听事件" 的方法.例如: $(document).ready( $("a") ...

  7. Function.prototype.toString 的使用技巧

    Function.prototype.toString这个原型方法可以帮助你获得函数的源代码, 比如: function hello ( msg ){ console.log("hello& ...

  8. 转:ORA-15186: ASMLIB error function = [asm_open], error = [1], 2009-05-24 13:57:38

    转:ORA-15186: ASMLIB error function = [asm_open], error = [1], 2009-05-24 13:57:38http://space.itpub. ...

  9. [Xamarin] 透過Native Code呼叫 JavaScript function (转帖)

    今天我們來聊聊關於如何使用WebView 中的Javascript 來呼叫 Native Code 的部分 首先,你得先來看看這篇[Xamarin] 使用Webview 來做APP因為這篇文章至少講解 ...

随机推荐

  1. RxSwift 函数响应式编程

    Max 在 Boston 上学,在 San Francisco 工作,是一名软件工程师及创业者.当他还在高中的时候就在一家创业公司工作了,他非常喜欢使用 iOS.Android 以及 JavaScri ...

  2. linux下面的智能解压脚本smart解压

    file命令可以辨别出一个给定文件的文件类型,如:file lf.gz,其输出结果为: lf.gz: gzip compressed data, deflated, original filename ...

  3. Clover3(可以让Windows Explorer像浏览器一样有标签页)

    这不是广告!!! 下载地址:http://cn.ejie.me/ 效果图:

  4. 第五章 JavaScript对象及初识面向对象

    第五章   JavaScript对象及初识面向对象 一.对象 在JavaScript中,所有事物都是对象,如字符串.数值.数组.函数等. 在JavaScript对象分为内置对象和自定义对象,要处理一些 ...

  5. 从PRISM开始学WPF(九)交互(完结)

    0x07交互 Notification xaml: <Window x:Class="UsingPopupWindowAction.Views.MainWindow" xml ...

  6. gradle入门(1-2)gradle的依赖管理

    Gradle支持以下仓库格式: Ivy仓库 Maven仓库 Flat directory仓库 一.添加仓库 1.添加Ivy仓库 1.1.通过URL地址添加一个Ivy仓库 我们可以将以下代码片段加入到b ...

  7. IDE-Android Studio 导入Ecplise项目不改变结构

    Android Studio 导入 Ecplise创建的android 项目  无导入 不修改目录结构 首先,Ecplise 原有目录结构创建的android项目一枚 Sept 1 .  打开项目 S ...

  8. SpringBoot集成Mybatis

    1.创建SpringBoot工程 根据 http://www.cnblogs.com/vitasyuan/p/8765329.html 说明创建SpringBoot项目. 2.添加相关依赖 在pom. ...

  9. Python生成随机验证码

    Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1.创建图片 from PIL import Image img = Image.new(m ...

  10. Spring学习之AOP与事务

      一.概述 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续, ...