基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题
 收藏
 关注
F(n) = (n % 1) + (n % 2) + (n % 3) + ...... (n % n)。其中%表示Mod,也就是余数。

例如F(6) = 6 % 1 + 6 % 2 + 6 % 3 + 6 % 4 + 6 % 5 + 6 % 6 = 0 + 0 + 0 + 2 + 1 + 0 = 3。
给出n,计算F(n), 由于结果很大,输出Mod 1000000007的结果即可。
 
Input
输入1个数N(2 <= N <= 10^12)。
Output
输出F(n) Mod 1000000007的结果。
Input示例
6
Output示例
3

这种东西莫比乌斯已经用过很多次了本来看到了想十分钟写完行了不发Blog结果WA的太惨了!!!
做法很简单,余数=n-[n/i]*i
然后一整理整除分块+等比数列搞就行了
问题:
1.等比数列/2要用逆元,只用到2的逆元所以先算出来直接用就好了,否则会T
2.一定要小心,n*n也会爆ll,所以(n%MOD)&(n%MOD),括号不能丢,因为10^9*10^12也会爆ll
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long ll;
const ll MOD=1e9+;
ll n,ans,r,Inv2;
ll Pow(ll a,int b){
ll re=;
for(;b;b>>=,a=a*a%MOD)
if(b&) re=re*a%MOD;
return re;
}
ll calc(ll l,ll r){return ((l+r)%MOD)*((r-l+)%MOD)%MOD*Inv2%MOD;}
int main(){
//freopen("in","r",stdin);
Inv2=Pow(,MOD-);
scanf("%lld",&n);
for(ll i=;i<=n;i=r+){
r=n/(n/i);
ans=(ans+(n/i)%MOD*calc(i,r)%MOD)%MOD;
}
n%=MOD;
printf("%lld",(n*n%MOD-ans+MOD)%MOD);
}

51Nod 1225 余数之和 [整除分块]的更多相关文章

  1. Bzoj 1257 [CQOI2007]余数之和 (整除分块)

    Bzoj 1257 [CQOI2007]余数之和 (整除分块) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1257 一道简单题. 题目 ...

  2. 51nod 1225 余数之和 数论

    1225 余数之和 题目连接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1225 Description F(n) ...

  3. 51Nod 1225 余数之和 —— 分区枚举

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1225 1225 余数之和  基准时间限制:1 秒 空间限制:1 ...

  4. bzoj1257: [CQOI2007]余数之和 整除分块

    题意:给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的值其中k mod i表示k除以i的余数.例如j(5, 3)=3 mod ...

  5. BZOJ1257: [CQOI2007]余数之和——整除分块

    题意 求 $\sum _{i=1}^n k \ mod \ i$($1\leq n,k\leq 10^9$). 分析 数据范围这么大 $O(n)$ 的复杂度也挺不住啊 根据取模的意义,$k \ mod ...

  6. 51nod 1225:余数之和

    传送门 题意 略 分析 \(\sum_i^n(n\%i)=\sum_i^n(n-i*n/i)=n^2-\sum_i^ni*n/i\) \(=\sum r\sum_i^ni[n/i==r]\) 可以证明 ...

  7. 51nod 1225 余数的和 数学

    1225 余数之和 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 F(n) = (n % 1) + (n % 2) + (n % 3) + ... ...

  8. bzoj1257[CQOI2007]余数之和(除法分块)

    1257: [CQOI2007]余数之和 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 6117  Solved: 2949[Submit][Statu ...

  9. P2261 [CQOI2007]余数求和[整除分块]

    题目大意 给出正整数 n 和 k 计算 \(G(n, k)=k\ \bmod\ 1 + k\ \bmod\ 2 + k\ \bmod\ 3 + \cdots + k\ \bmod\ n\) 的值 其中 ...

随机推荐

  1. Dig out WeChat deleted chat messages on Android Phone

    As we know that WeChat will wipe deleted chat messages. That's why forensic guys could  not dig out ...

  2. 关于STM32驱动DS1302实时时钟的一点思考

    之前用51驱动过DS1302,没用多久就输出了正确的时间.当时以为这块芯片其实没啥,很简单.但是现在用STM32做项目,用到同样的芯片,以为这有何难,只要把那个程序拿过来复制黏贴改一下IO设置不就行了 ...

  3. 分享给有需要的你,精选了10套web开发免费视频教程~~

    在这里给大家精选百度传课里的一些比较好的视频教程,比较适合新手们,有需要的可以收藏着学习!!  蓝鸥微信小程序全方位深度解析 链接:http://www.chuanke.com/v4702151-19 ...

  4. PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 

    http://blog.csdn.net/lamp_yang_3533/article/details/52003021 在使用PhpStorm的GitHub或Git功能时,经常会出现以下错误信息: ...

  5. python基础8之自定义模块、if __name__==__main__:解释

    一.自定义模块与使用 python模块说明:类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  6. Python-Blog2-编写Web app 骨架

    撸代码之前让我们先来看几个概念: 什么是协程(Coroutine)? 假设现在有两个子程序,子程序A和子程序B: def A(): print('1') print('2') print('3') d ...

  7. SpringMvc4.x---快捷的ViewController

    @RequestMapping("/index") public String hello(){ return "index"; } 此处无任何的业务处理,只是 ...

  8. [转]同一台Windows机器中启动多个Memcached服务

    Memcached的安装后,如果手头上只有一台机器,又想做多节点测试咋办? 这就需要在一台机器上启动多个Memcached服务了. 假设Memcached在如下目录:C:\memcached\memc ...

  9. tone()函数的有趣的使用案例

    tong()除了可以驱动蜂鸣器之外,还可以驱动步进电机(测试很好用) 一个引脚上产生一个特定频率的方波(%占空比).持续时间可以设定,否则波形会一直产生直到调用noTone()函数.该引脚可以连接压电 ...

  10. File类实现文件夹和文件复制

    package com.jcy.copy; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFou ...