BZOJ_2956_模积和_数学
BZOJ_2956_模积和_数学
Description
Input
第一行两个数n,m。
Output
一个整数表示答案mod 19940417的值
Sample Input
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$的时间内算出
代码:
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- using namespace std;
- typedef long long ll;
- ll mod=19940417*6;
- ll sum1(ll x) {
- return (x+1)*x%mod/2;
- }
- ll sum2(ll x) {
- return x*(x+1)%mod*(2*x+1)%mod/6;
- }
- ll calc1(ll n) {
- int i,lst;
- ll ans=n*n%mod;
- for(i=1;i<=n;i=lst+1) {
- lst=(n/(n/i));
- ans=(ans-(n/i)*(sum1(lst)-sum1(i-1)+mod)%mod+mod)%mod;
- }
- return ans;
- }
- ll calc2(ll n,ll m) {
- int i,lst;
- ll ans=n*m%mod,r=min(n,m);
- ans=ans*r%mod;
- for(i=1;i<=r;i=lst+1) {
- lst=min(n/(n/i),m/(m/i));
- ll del=(sum1(lst)-sum1(i-1)+mod)%mod;
- 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;
- }
- return ans;
- }
- int main() {
- ll n,m;
- scanf("%lld%lld",&n,&m);
- printf("%lld\n",(calc1(n)*calc1(m)%mod-calc2(n,m)+mod)%(mod/6));
- }

BZOJ_2956_模积和_数学的更多相关文章
- BZOJ_2467_[中山市选2010]生成树_数学
BZOJ_2467_[中山市选2010]生成树_数学 [Submit][Status][Discuss] Description 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成 ...
- BZOJ_2721_[Violet 5]樱花_数学
BZOJ_2721_[Violet 5]樱花_数学 Description Input Output $\frac{1}{x}+\frac{1}{y}=\frac{1}{m}$ $xm+ym=xy$ ...
- P2260 [清华集训2012]模积和
P2260 [清华集训2012]模积和 整除分块+逆元 详细题解移步P2260题解板块 式子可以拆开分别求解,具体见题解 这里主要讲的是整除分块(数论分块)和mod不为素数时如何求逆元 整除分块:求Σ ...
- 【BZOJ】2956:模积和
Time Limit: 10 Sec Memory Limit: 128 MB Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j ...
- 【BZOJ2956】模积和 分块
[BZOJ2956]模积和 Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j. Input 第一行两个数n,m ...
- 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 ...
- BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数
BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数 Description 丢番图是亚历山大时期埃及著名的数学家.他是最早研究整数系数不定方程的数学家之一. 为了纪念他,这些方程一般被称 ...
- P2260 [清华集训2012]模积和 【整除分块】
一.题目 P2260 [清华集训2012]模积和 二.分析 参考文章:click here 具体的公式推导可以看参考文章.博主的证明很详细. 自己在写的时候问题不在公式推导,公式还是能够比较顺利的推导 ...
- 「BZOJ 2956」模积和
「BZOJ 2956」模积和 令 \(l=\min(n,m)\).这个 \(i\neq j\) 非常不优雅,所以我们考虑分开计算,即: \[\begin{aligned} &\sum_{i=1 ...
随机推荐
- 没人看系列-----html随笔
<!DOCTYPE> 目录 没人看系列-----html/css详解 前言 不多说这段时间写了好多好多前端的东西,以至于自己重新返回看了一遍前端的所有技术.故此做个总结,准备学东西的请绕行 ...
- win10安装wmi报错问题
在win10上,安装wmi,首先下载https://pypi.python.org/pypi/WMI/#downloads,将wmi下载下来 安装过程中,会报错,No Python installat ...
- Android开发之深入理解Android 7.0系统权限更改相关文档
http://www.cnblogs.com/dazhao/p/6547811.html 摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限 ...
- 导入项目 idea
下的java核心编程的源码,只有java文件,没有idea或者eclipse的项目结构信息. 分别用eclipse和idea打开了一遍,方便学习调试. 项目文件夹:E:\学习资料\Java\语法\ja ...
- Nginx 怎么给一台服务器,配置两个域名?详细的解说+截图教程
一. 环境.条件准备 一台云服务器(我的是腾讯的centos7) 至少两个域名.(我的是simuhunluo.xyz和simuhunluo.top.这两个域名之间没有任何关系,我是在阿里 ...
- spring cloud 入门系列六:使用Zuul 实现API网关服务
通过前面几次的分享,我们了解了微服务架构的几个核心设施,通过这些组件我们可以搭建简单的微服务架构系统.比如通过Spring Cloud Eureka搭建高可用的服务注册中心并实现服务的注册和发现: 通 ...
- 第三次 orm自动建表及遇到的问题
Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 方法很简单,在hibernate.cfg.xml内加入 <property name="hi ...
- [CVPR2017] Visual Translation Embedding Network for Visual Relation Detection 论文笔记
http://www.ee.columbia.edu/ln/dvmm/publications/17/zhang2017visual.pdf Visual Translation Embedding ...
- Axios源码深度剖析 - 替代$.ajax,成为xhr的新霸主
前戏 在正式开始axios讲解前,让我们先想想,如何对现有的$.ajax进行简单的封装,就可以直接使用原声Promise了? let axios = function(config){ return ...
- hibernate多表查询封装实体
以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQ ...