Bzoj 1257 [CQOI2007]余数之和 (整除分块)
Bzoj 1257 [CQOI2007]余数之和 (整除分块)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1257
一道简单题.
题目要求:
\]
\]
\]
后面这一部分可以用整除分块解决.
需要注意的是.\(k\%i(i > k)\) 时,运用整除分块,程序会出错,因为除了\(0\),显然\(i>k\)时,不会对答案造成影响.整除分块的时候只需要枚举到\(min(n,k)\)即可.
还需要一点等差数列的知识.
\(l+(l+1)+(l+2)+(l+3)..r\)
这一部分的和就是\((l + r) /2 * (r - l + 1)\)区间的平均值乘以区间元素个数.
然后就做完了.
时间复杂度:\(O(\sqrt n)\)
CODE
#include <iostream>
#include <cstdio>
#define ll long long
ll ans,n,k;
ll min(ll a,ll b) {return a > b ? b : a;}
ll max(ll a,ll b) {return a > b ? a : b;}
int main() {
    scanf("%lld%lld",&n,&k);
    ans = n * k;
    for(ll l = 1,r;l <= min(k,n);l = r + 1) {
        r = min( k / (k / l) , n );
        ans -= (k / l) * (r - l + 1) * (r + l) / 2;
    }
    printf("%lld",ans);
    return 0;
}
												
											Bzoj 1257 [CQOI2007]余数之和 (整除分块)的更多相关文章
- bzoj 1257: [CQOI2007]余数之和 (数学+分块)
		
Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值 其中k mod i表示k除以i的余数. 例如j(5 ...
 - bzoj 1257 [CQOI2007]余数之和——数论分块
		
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1257 \( n\%i = n - \left \lfloor n/i \right \rfl ...
 - BZOJ 1257: [CQOI2007]余数之和sum
		
1257: [CQOI2007]余数之和sum Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 3769 Solved: 1734[Submit][St ...
 - bzoj 1257: [CQOI2007]余数之和sum 数学 && 枚举
		
1257: [CQOI2007]余数之和sum Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 1779 Solved: 823[Submit][Sta ...
 - BZOJ 1257: [CQOI2007]余数之和sum( 数论 )
		
n >= k 部分对答案的贡献为 k * (n - k) n < k 部分贡献为 ∑ (k - ⌊k / i⌋ * i) = ∑ , ⌊k / i⌋ 相等的数是连续的一段, 此时这段连 ...
 - BZOJ 1257: [CQOI2007]余数之和sum【神奇的做法,思维题】
		
1257: [CQOI2007]余数之和sum Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 4474 Solved: 2083[Submit][St ...
 - BZOJ 1257: [CQOI2007]余数之和
		
1257: [CQOI2007]余数之和 Time Limit: 5 Sec Memory Limit: 128 MB Description 给出正整数n和k,计算j(n, k)=k mod 1 ...
 - [原博客] BZOJ 1257 [CQOI2007] 余数之和
		
题目链接题意: 给定n,k,求 ∑(k mod i) {1<=i<=n} 其中 n,k<=10^9. 即 k mod 1 + k mod 2 + k mod 3 + … + k mo ...
 - 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 ...
 
随机推荐
- iOS app支付宝接口调用的一点总结(补充支付宝SDK&Demo下载地址)
			
由于app内需要用到支付功能,选择了当前最流行的支付宝进行支付.在进行内嵌支付宝功能开发时,被它狠狠的耍了一把. 根据支付宝开发文档,参考demo代码.将相关支付功能加到了自己的代码中.一些根据文档来 ...
 - windows如何搭建redis集群
			
操作系统:win10 64位 redis版本:3.2.1-x64 ruby版本:2.5.1-1-x64 rubygems版本:2.7.6 今天突然想简单的搭建一个redis的集群,因为系统是Windo ...
 - JSON对象  JSON字符串 JSON数组
			
JSON对象: var str2 = { "name" : "andy", "gender" : "man" , &q ...
 - 2017"百度之星"程序设计大赛 - 资格赛 寻找母串
			
Problem Description 对于一个串S,当它同时满足如下条件时,它就是一个01偏串: 1.只由0和1两种符组成: 2.在S的每一个前缀中,0的个数不超过1的个数: 3.S中0的个数和1的 ...
 - java中代码执行顺序
			
静态代码块 -- >构造代码块 --> 构造方法静态代码块:只执行一次构造代码块:每次调用构造方法都执行 http://blog.csdn.net/wuhaiwei002/article/ ...
 - 工作的时候 用到了  获取时间 DateTime 整理了一下
			
获得当前系统时间: DateTime dt = DateTime.Now; Environment.TickCount可以得到“系统启动到现在”的毫秒值 DateTime now = DateTime ...
 - html文本框和按钮这些点击时不显示边框的光晕
			
直接在样式加:focus{outline:0;}这样子就可以了
 - asp.net调试技巧
			
一眨眼的功夫,自己已经学习asp.net的有一年的功夫了.虽然称不上什么大神,但是也有一点知识的积累.就写一片调试的入门文章给那些刚刚入门迷茫的童鞋们.希望你学习了我这篇文章能从迷茫的生活中找回编程的 ...
 - java mongodb-crud
			
本篇文章主要介绍了mongodb对应java的常用增删改查的api,以及和spring集成后mongoTemplate的常用方法使用,废话不多说,直接上代码: 1.首先上需要用到的两个实体类User和 ...
 - drupal6提示 Compilation failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 9 on line 615
			
解决办法:将sites\all\modules\ctools\includes\cleanstring.inc文件中的61行改成62行这样子即可,如下图