BZOJ_2956_模积和_数学

Description

 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j。

  

Input

第一行两个数n,m。

Output

  一个整数表示答案mod 19940417的值

Sample Input

3 4

Sample Output

1

样例说明
  答案为(3 mod 1)*(4 mod 2)+(3 mod 1) * (4 mod 3)+(3 mod 1) * (4 mod 4) + (3 mod 2) * (4 mod 1) + (3 mod 2) * (4 mod 3) + (3 mod 2) * (4 mod 4) + (3 mod 3) * (4 mod 1) + (3 mod 3) * (4 mod 2) + (3 mod 3) * (4 mod 4) = 1

数据规模和约定
  对于100%的数据n,m<=10^9。


分析:

$$\sum_{i=1}^{n}\sum_{j=1}^{m}(n-i*\lfloor n/i\rfloor)*(m-j*\lfloor m/j\rfloor)
-\sum_{i=1}^{n}(n\;mod\;i)*(m\;mod\;i)=$$
$$(\sum_{i=1}^{n}n-i*\lfloor n/i\rfloor\;)*(\sum_{i=1}^{m}m-i*\lfloor m/i\rfloor)-$$
$$\sum_{i=1}^{n}(n*m-i*\lfloor n/i\rfloor*m-i*\lfloor m/i\rfloor*n+
i*\lfloor n/i\rfloor*i*\lfloor m/i\rfloor)=$$
$$(n^{2}-\sum_{i=1}^{n}i*\lfloor n/i\rfloor)
*(m^{2}-\sum_{i=1}^{m}i*\lfloor m/i\rfloor)-$$
$$\sum_{i=1}^{n}(n*m-i*\lfloor n/i\rfloor*m-i*\lfloor m/i\rfloor*n+
i*\lfloor n/i\rfloor*i*\lfloor m/i\rfloor)$$
两边都能在$\sqrt n$的时间内算出

代码:

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <algorithm>
  4. using namespace std;
  5. typedef long long ll;
  6. ll mod=19940417*6;
  7. ll sum1(ll x) {
  8. return (x+1)*x%mod/2;
  9. }
  10. ll sum2(ll x) {
  11. return x*(x+1)%mod*(2*x+1)%mod/6;
  12. }
  13. ll calc1(ll n) {
  14. int i,lst;
  15. ll ans=n*n%mod;
  16. for(i=1;i<=n;i=lst+1) {
  17. lst=(n/(n/i));
  18. ans=(ans-(n/i)*(sum1(lst)-sum1(i-1)+mod)%mod+mod)%mod;
  19. }
  20. return ans;
  21. }
  22. ll calc2(ll n,ll m) {
  23. int i,lst;
  24. ll ans=n*m%mod,r=min(n,m);
  25. ans=ans*r%mod;
  26. for(i=1;i<=r;i=lst+1) {
  27. lst=min(n/(n/i),m/(m/i));
  28. ll del=(sum1(lst)-sum1(i-1)+mod)%mod;
  29. ans=(ans-m*(n/i)%mod*del%mod-n*(m/i)%mod*del%mod+(n/i)*(m/i)%mod*(sum2(lst)-sum2(i-1)+mod)%mod)%mod;
  30. }
  31. return ans;
  32. }
  33. int main() {
  34. ll n,m;
  35. scanf("%lld%lld",&n,&m);
  36. printf("%lld\n",(calc1(n)*calc1(m)%mod-calc2(n,m)+mod)%(mod/6));
  37. }

BZOJ_2956_模积和_数学的更多相关文章

  1. BZOJ_2467_[中山市选2010]生成树_数学

    BZOJ_2467_[中山市选2010]生成树_数学 [Submit][Status][Discuss] Description 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成 ...

  2. BZOJ_2721_[Violet 5]樱花_数学

    BZOJ_2721_[Violet 5]樱花_数学 Description Input Output $\frac{1}{x}+\frac{1}{y}=\frac{1}{m}$ $xm+ym=xy$ ...

  3. P2260 [清华集训2012]模积和

    P2260 [清华集训2012]模积和 整除分块+逆元 详细题解移步P2260题解板块 式子可以拆开分别求解,具体见题解 这里主要讲的是整除分块(数论分块)和mod不为素数时如何求逆元 整除分块:求Σ ...

  4. 【BZOJ】2956:模积和

    Time Limit: 10 Sec  Memory Limit: 128 MB Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j ...

  5. 【BZOJ2956】模积和 分块

    [BZOJ2956]模积和 Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j. Input 第一行两个数n,m ...

  6. UOJ_21_【UR #1】缩进优化_数学

    UOJ_21_[UR #1]缩进优化_数学 题面:http://uoj.ac/problem/21 最小化$\sum\limits{i=1}^{n}a[i]/x+a[i]\;mod\;x$ =$\su ...

  7. BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数

    BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数 Description 丢番图是亚历山大时期埃及著名的数学家.他是最早研究整数系数不定方程的数学家之一. 为了纪念他,这些方程一般被称 ...

  8. P2260 [清华集训2012]模积和 【整除分块】

    一.题目 P2260 [清华集训2012]模积和 二.分析 参考文章:click here 具体的公式推导可以看参考文章.博主的证明很详细. 自己在写的时候问题不在公式推导,公式还是能够比较顺利的推导 ...

  9. 「BZOJ 2956」模积和

    「BZOJ 2956」模积和 令 \(l=\min(n,m)\).这个 \(i\neq j\) 非常不优雅,所以我们考虑分开计算,即: \[\begin{aligned} &\sum_{i=1 ...

随机推荐

  1. 没人看系列-----html随笔

    <!DOCTYPE> 目录 没人看系列-----html/css详解 前言 不多说这段时间写了好多好多前端的东西,以至于自己重新返回看了一遍前端的所有技术.故此做个总结,准备学东西的请绕行 ...

  2. win10安装wmi报错问题

    在win10上,安装wmi,首先下载https://pypi.python.org/pypi/WMI/#downloads,将wmi下载下来 安装过程中,会报错,No Python installat ...

  3. Android开发之深入理解Android 7.0系统权限更改相关文档

    http://www.cnblogs.com/dazhao/p/6547811.html 摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限 ...

  4. 导入项目 idea

    下的java核心编程的源码,只有java文件,没有idea或者eclipse的项目结构信息. 分别用eclipse和idea打开了一遍,方便学习调试. 项目文件夹:E:\学习资料\Java\语法\ja ...

  5. Nginx 怎么给一台服务器,配置两个域名?详细的解说+截图教程

    一.        环境.条件准备 一台云服务器(我的是腾讯的centos7) 至少两个域名.(我的是simuhunluo.xyz和simuhunluo.top.这两个域名之间没有任何关系,我是在阿里 ...

  6. spring cloud 入门系列六:使用Zuul 实现API网关服务

    通过前面几次的分享,我们了解了微服务架构的几个核心设施,通过这些组件我们可以搭建简单的微服务架构系统.比如通过Spring Cloud Eureka搭建高可用的服务注册中心并实现服务的注册和发现: 通 ...

  7. 第三次 orm自动建表及遇到的问题

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 方法很简单,在hibernate.cfg.xml内加入 <property name="hi ...

  8. [CVPR2017] Visual Translation Embedding Network for Visual Relation Detection 论文笔记

    http://www.ee.columbia.edu/ln/dvmm/publications/17/zhang2017visual.pdf Visual Translation Embedding ...

  9. Axios源码深度剖析 - 替代$.ajax,成为xhr的新霸主

    前戏 在正式开始axios讲解前,让我们先想想,如何对现有的$.ajax进行简单的封装,就可以直接使用原声Promise了? let axios = function(config){ return ...

  10. hibernate多表查询封装实体

    以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQ ...