朴素能得个差不多吧……

这题改进算法真恶心

pascal一直过不了,难道非得转c++?

代码:(pascal)

 var n,k,i,l,r,m:longint;
ans:qword;
function ceil(x:real):longint;
begin
if trunc(x)<x then exit(trunc(x)+) else exit(trunc(x));
end;
procedure main;
begin
readln(n,k);
ans:=;
if n>k then
begin
inc(ans,(n-k)*k);
n:=k;
end;
m:=ceil(sqrt(k));
for i:= to m do inc(ans,k mod i);
for i:= to m do
begin
l:=(k div (i+))+;
r:=(k div i);
if l<=m then l:=m+;
if r>n then r:=n;
if r<l then continue;
inc(ans,(((k<<)-i*(l+r))*(r-l+)>>));
end;
writeln(ans);
end;
begin
main;
end.

代码:(c++)

 #include <iostream>
#include <cmath>
using namespace std; long long ans,n,k;
int main() {
ios::sync_with_stdio(false);
cin>>n>>k;
if (n>k) {
ans+=k*(n-k);
n=k;
}
long long sqrtk=ceil(sqrt(k));
for (long long i=;i<=sqrtk;++i) ans+=k%i;
for (long long a=;a<=sqrtk;++a) {
long long L=floor(k/(a+))+;
long long R=floor(k/a);
if (L<=sqrtk) L=sqrtk+;
if (R>n) R=n;
if (R<L) continue;
ans+=((k<<)-a*L-a*R)*(R-L+)>>;
}
cout<<ans;
}

另一种分块方法,pascal还是过不了……

 #include <cmath>
#include <cstdio>
#include <algorithm> long long n, k, ans;
int main()
{
scanf("%lld%lld", &n, &k);
if (n > k)
{
ans += (n-k)*k;
n = k;
}
ans += n * k;
for (long long i = , last; i <= n; i = last+)
{
last = std::min(n, k/(k/i));
ans -= (k/i) * (i+last) * (last-i+1) / 2;
}
printf("%lld", ans);
}

CQOIX2007余数之和的更多相关文章

  1. BZOJ 1257: [CQOI2007]余数之和sum

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 3769  Solved: 1734[Submit][St ...

  2. 【BZOJ1257】【CQOI2007】余数之和sum

    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, ...

  3. 51nod1225 余数之和

    打表可以看出规律.分块求就可以了. #include<cstdio> #include<cstring> #include<cctype> #include< ...

  4. [原博客] 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 ...

  5. bzoj 1257: [CQOI2007]余数之和sum 数学 && 枚举

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 1779  Solved: 823[Submit][Sta ...

  6. BZOJ 1257: [CQOI2007]余数之和sum( 数论 )

    n >= k 部分对答案的贡献为 k * (n - k) n < k 部分贡献为 ∑ (k - ⌊k / i⌋ * i)  = ∑  , ⌊k / i⌋ 相等的数是连续的一段, 此时这段连 ...

  7. 1257: [CQOI2007]余数之和sum

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2001  Solved: 928[Submit][Sta ...

  8. BZOJ 1257: [CQOI2007]余数之和sum【神奇的做法,思维题】

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 4474  Solved: 2083[Submit][St ...

  9. 51Nod 1225 余数之和 [整除分块]

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

随机推荐

  1. setcookie,getcookie,delcookie,setpostBgPic

    function setCookie(name,value) { var Days = 365; //此 cookie 将被保存 30 天 var exp = new Date(); //new Da ...

  2. ios播放声音中断后台音乐的问题

      今天遇到一个ios播放声音中断后台音乐的问题,在我的app中如果调用AVAudioSession 播放完声音,后台的qq音乐偶尔不能恢复,而网易云音乐一次都不能恢复播放,研究了一下AVAudioS ...

  3. 【学习总结】UIGestureRecognizer(手势识别器)

    基本知识点 : -> IOS 3.2之后 , 苹果推出了手势识别功能 ( Gesture Recognizer ) 在触摸事件处理方面 , 简化开发难度. -> UIGesture Rec ...

  4. WebView重定向新开界面问题-b

    首先介绍下这个问题,iOS上WebView 如果想更贴近native,就要加载新URL的时候新开个界面,但是如果加载的链接有重定向的话,就会在中间开一个空白的界面,这个好烦.然后就是解决这个问题,采用 ...

  5. storyboard 总结

    1.storyboard 布局时用代码实现页面跳转: a> 获取当前 storyboard : [self storyboard] b> 为将要跳转到的 viewController 添加 ...

  6. google protobuf 使用示例

    定义.proto接口文件 package tutorial; message Person { required ; required int32 id = ; //unique ID number ...

  7. Quartz任务调度快速入门(转)

    概述 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述: ●Jo ...

  8. CentOS 报no acceptable C compiler found in $PATH的解决办法

    CentOS 6.2下安装tcpreplay工具的时候,先安装libpcap-1.3.0,configure libpcap时出错. #./configure 提示没有GCC编译器环境) config ...

  9. python之高性能网络编程并发框架eventlet实例

    http://blog.csdn.net/mingzznet/article/details/38388299 前言: 虽然 eventlet 封装成了非常类似标准线程库的形式,但线程和eventle ...

  10. PJSIP在windows(xp或者win7)下的编译,编译工具是vs2008,PJSIP版本2.3

    PJSIP是一个开源的SIP协议库,它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多媒体通信框架提供了非常清晰的API,以及NAT穿越的功能.PJSIP具有 ...