bzoj 2956 数学展开,分段处理
首先对于答案
ΣΣ(n mod i)*(m mod j) i<>j
也就是Σ(n mod i)Σ(m mod j)-Σ(n mod i)(m mod i)
将mod展开,我们可以得到有floor的式子,对于这种式子,我们可以
利用分段的思想,将O(N)的简化为sqrt(n)的
/**************************************************************
Problem:
User: BLADEVIL
Language: Pascal
Result: Accepted
Time: ms
Memory: kb
****************************************************************/ //By BLADEVIL
const
d39 =; var
n, m :int64;
ans, ans2 :int64; function min(a,b:int64):int64;
begin
if a>b then min:=b else min:=a;
end; function calc(x,y:int64):int64;
var
i, j :int64;
z :int64;
begin
calc:=;
i:=;
while i<=y do
begin
j:=x div (x div i);
if j>y then j:=y;
z:=((i+j)*(j-i+) div ) mod d39;
calc:=(calc+(z*(x div i) mod d39) mod d39)mod d39;
i:=j+;
end;
end; function sum(x:int64):int64;
var
a, b, c :int64;
begin
if x= then exit();
a:=x; b:=x+; c:=*x+;
if a mod = then a:=a div else
if b mod = then b:=b div else
if c mod = then c:=c div ;
if a mod = then a:=a div else
if b mod = then b:=b div else
if c mod = then c:=c div ;
sum:=a mod d39;
sum:=sum*b mod d39;
sum:=sum*c mod d39;
end; function fuck:int64;
var
i, j :int64;
t1, t2 :int64;
z :int64;
begin
i:=;
fuck:=;
while i<=min(n,m) do
begin
t1:=n div (n div i);
t2:=m div (m div i);
j:=min(t1,t2);
z:=(((sum(j)-sum(i-)) mod d39+d39) mod d39);
z:=(z*(n div i)) mod d39;
z:=(z*(m div i)) mod d39;
fuck:=(fuck+z) mod d39;
i:=j+;
end;
end; begin
read(n,m);
ans2:=calc(m,m) mod d39;
ans2:=((m*m-ans2) mod d39+d39) mod d39;
ans:=((n*n-calc(n,n)) mod d39*ans2) mod d39;
ans2:=(n*m mod d39)*min(n,m) mod d39;
ans2:=(ans2+fuck) mod d39;
ans2:=((ans2-m*calc(n,min(n,m)))mod d39+d39) mod d39;
ans2:=((ans2-n*calc(m,min(n,m)))mod d39+d39) mod d39;
ans:=((ans-ans2) mod d39+d39) mod d39;
writeln(ans);
end.
bzoj 2956 数学展开,分段处理的更多相关文章
- BZOJ 2326 数学作业(分段矩阵快速幂)
实际上,对于位数相同的连续段,可以用矩阵快速幂求出最后的ans,那么题目中一共只有18个连续段. 分段矩阵快速幂即可. #include<cstdio> #include<iostr ...
- bzoj 5334 数学计算
bzoj 5334 数学计算 开始想直接模拟过程做,但模数 \(M\) 不一定为质数,若没有逆元就 \(fAKe\) 掉了. 注意到操作 \(2\) 是删除对应的操作 \(1\) ,相当于只有 \(1 ...
- 「BZOJ 2956」模积和
「BZOJ 2956」模积和 令 \(l=\min(n,m)\).这个 \(i\neq j\) 非常不优雅,所以我们考虑分开计算,即: \[\begin{aligned} &\sum_{i=1 ...
- BZOJ 2956 模积和 (数学推导+数论分块)
手动博客搬家: 本文发表于20170223 16:47:26, 原地址https://blog.csdn.net/suncongbo/article/details/79354835 题目链接: ht ...
- BZOJ 2956 模积和(分块)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2956 [题目大意] 求∑∑((n%i)*(m%j))其中1<=i<=n,1 ...
- BZOJ 2956 模积和
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2956 题意:给出n和m.计算: 思路: i64 n,m; i64 cal(i64 m,i ...
- BZOJ 2326 数学作业(矩阵)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2326 题意:定义Concatenate(1,N)=1234567……n.比如Concat ...
- [Bzoj 2956] 模积和 (整除分块)
整除分块 一般形式:\(\sum_{i = 1}^n \lfloor \frac{n}{i} \rfloor * f(i)\). 需要一种高效求得函数 \(f(i)\) 的前缀和的方法,比如等差等比数 ...
- BZOJ 4173: 数学
4173: 数学 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 462 Solved: 227[Submit][Status][Discuss] D ...
随机推荐
- JS中的控制函数调用:call(),apply()和bind()
所有的函数都具有call(),apply()和bind()方法.它们可以在执行方法的时候用一个值指向this,并改变面向对象的作用域. apply方法: 以下的两种表达式是等价的: func(arg1 ...
- PHP preg_replace() 正则替换所有符合条件的字符串示例
PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. 需要用程序处理的数据并不总是预先以数 ...
- 解决Genymotion下载设备失败的方法(Connection Timeout)
一直下载不下来,报错. 解决办法: 打开 C:\Users\用户名\AppData\Local\Genymobile目录 打开genymotion.log文件,在里面最下面几行,找到如下日志 [Deb ...
- ado.net的5个主要对象
connection 连接对象 command 命令对象,指示要执行的命令和存储过程! datareader是一个向前的只读的数据流. dataadapter是功能强大的适陪器,支持增删改查的功能 d ...
- openSUSE13.1 Yast 中所有软件图形化界面无法打开,问题原因: Ruby
因为使用rvm安装了新的Ruby,而openSUSE13.1的YaST又是用Ruby的.....解决方案暂时没有
- java路径问题总结
平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下[一 相对路径的获得] 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) St ...
- Android--将图片存放到我们本地
代码里面有详细的解释,我就不多说了 //处理并保存图像 private File dealPhoto(Bitmap photo){ FileOutputStream fileOutputStream ...
- maven学习手记 - 3
学习目标 maven插件的定义: maven插件的使用. 前言 在手记2中说过maven的阶段命令是通过插件实现的.在手记1中也有简单的示范过插件的用法.但是总觉得有些泛泛了,想在这里再捋一下,以 ...
- c/c++常用代码 -- 共享内存
#pragma once #include <stdio.h> #include <tchar.h> #include <string.h> #include &l ...
- MVC3+中 ViewBag、ViewData和TempData的使用和区别
在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData.MVC3中保留了ViewData的使用.ViewBag 是动态类型(dynamic),ViewData 是 ...