1257: [CQOI2007]余数之和sum

Time Limit: 5 Sec  Memory Limit: 162 MB
Submit: 1138  Solved: 509
[Submit][Status]

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)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7

Input

输入仅一行,包含两个整数n, k。

Output

输出仅一行,即j(n, k)。

Sample Input

5 3

Sample Output

7

HINT

50%的数据满足:1<=n, k<=1000 100%的数据满足:1<=n ,k<=10^9

Source

数论

【分析】:
      求Σ(K%i),1≤i≤N
      K%i=K-(K/i)*i,对于i至K/(K/i)这一段K/i相同,可以一起算,可证总段数是sqrt(N)的。
      复杂度:O(Sqrt(N))
 
【代码】:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;
#define MAXN 1000001
long long N,K,number[MAXN],tot=0;
long long ans=0;
int main()
{
//freopen("input.in","r",stdin);
//freopen("output.out","w",stdout);
scanf("%lld%lld",&N,&K);
for(int i=1;i<=(int)sqrt(K);i++)
{
number[++tot]=i;
if(K/i!=i)   number[++tot]=K/i;
}
sort(number+1,number+1+tot);
long long last=(N>K?K:N);
for(int i=1;i<=tot;i++)
{
if(number[tot-i]+1<=last)
{
long long sigma_i=(number[tot-i]+1LL+last)*(last-number[tot-i])/2LL;
ans=ans-sigma_i*number[i];
last=number[tot-i];
}
}
ans+=N*K;
printf("%lld\n",ans);
//system("pause");
return 0;
}

 
转载注明出处:http://blog.csdn.net/u011400953

BZOJ 1257 [CQOI2007]余数之和sum 题解相关推荐

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

    1257: [CQOI2007]余数之和sum Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnlin ...

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

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

  3. bzoj 1257: [CQOI2007]余数之和sum

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 4462  Solved: 2078 [Submit][ ...

  4. BZOJ 1257 [CQOI2007]余数之和sum ——Dirichlet积

    [题目分析] 卷积很好玩啊. [代码] #include <cstdio> #include <cstring> #include <cmath> #include ...

  5. bzoj1257: [CQOI2007]余数之和sum

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 2787  Solved: 1278 [Submit][ ...

  6. [bzoj] 1257 余数之和sum || 数论

    原题 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的值,其中k mod i表示k除以i的余数. \(\sum^n_{i=1} ...

  7. BZOJ-1257-[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, ...

  8. BZOJ1257 [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, ...

  9. 2017.3.15 余数之和sum 失败总结

    数论题还是不会. 主要是实在搞不清楚一个数和一个连续递增的模数有什么关系.. 唯一能感觉到的是倍数差,但效率不如直接求,感觉这种题一般都和质数有关了 好吧.和质数无关    竟然这么简单. 还真是倍数 ...

最新文章

  1. 夏天和空调_您可以在今年夏天开始学习650项免费的在线编程和计算机科学课程...
  2. canvas做一个简单气泡图
  3. 用cmd运行java程序
  4. 如何用好消息推送(JPush)为app拉新、留存、促活
  5. SQL查询【根据生日计算】
  6. Healing Psoriasis The Natural Alternative-序言(未完待续)
  7. javascript 框架_每个JavaScript框架教程写的时间都超过5分钟
  8. JOpt Simple OptionParser解析命令参数
  9. 儿童手表还能这么用?定位功能防出轨 网友:这令人窒息的爱情
  10. codeforce #164 div2
  11. linux语音识别_linux语音识别 arm_linux 语音识别引擎 - 云+社区 - 腾讯云
  12. python 2 版本中的input() 和 raw_input() 函数的比较
  13. 西威SIEI电梯变频器维修图纸
  14. 生信笔记:系统进化树的分类
  15. Python操纵Word神器——python-docx大全(含插入pptx图表)
  16. 深度学习利器之自动微分(2)
  17. Pearson,Kendall和Spearman三种相关分析方法的异同
  18. 【C语言基础学习---扫雷游戏】(包含普通版+递归炼狱版)
  19. 详解C++中的析构函数
  20. python下载成功的标志_电脑安装python过后的图标

热门文章

  1. 夜班媒体人援助项目在京启动,陈于冰说:“一直以来.....
  2. 中科院吕本富:“互联网+”已产生泡沫
  3. ctp服务器的出版文件在那里,ctp行情服务器地址
  4. 计算机视觉 | 面试题:10、梯度消失和爆炸以及解决方法
  5. 动手学moveit2|介绍和安装
  6. knn算法,利用numpy简单实现
  7. 2022-2027年中国海洋油气开采行业市场全景评估及发展战略规划报告
  8. 弹性公网IP(EIP)
  9. CSS3 动画效果
  10. 人工智能工程师的三个层次