BZOJ 1257 [CQOI2007]余数之和sum 题解
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
Sample Output
HINT
50%的数据满足:1<=n, k<=1000 100%的数据满足:1<=n ,k<=10^9
Source
数论
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;
}
BZOJ 1257 [CQOI2007]余数之和sum 题解相关推荐
- bzoj 1257: [CQOI2007]余数之和sum 数论
1257: [CQOI2007]余数之和sum Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnlin ...
- BZOJ 1257: [CQOI2007]余数之和sum【神奇的做法,思维题】
1257: [CQOI2007]余数之和sum Time Limit: 5 Sec Memory Limit: 162 MB Submit: 4474 Solved: 2083 [Submit][ ...
- bzoj 1257: [CQOI2007]余数之和sum
1257: [CQOI2007]余数之和sum Time Limit: 5 Sec Memory Limit: 162 MB Submit: 4462 Solved: 2078 [Submit][ ...
- BZOJ 1257 [CQOI2007]余数之和sum ——Dirichlet积
[题目分析] 卷积很好玩啊. [代码] #include <cstdio> #include <cstring> #include <cmath> #include ...
- bzoj1257: [CQOI2007]余数之和sum
1257: [CQOI2007]余数之和sum Time Limit: 5 Sec Memory Limit: 162 MB Submit: 2787 Solved: 1278 [Submit][ ...
- [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} ...
- 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, ...
- 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, ...
- 2017.3.15 余数之和sum 失败总结
数论题还是不会. 主要是实在搞不清楚一个数和一个连续递增的模数有什么关系.. 唯一能感觉到的是倍数差,但效率不如直接求,感觉这种题一般都和质数有关了 好吧.和质数无关 竟然这么简单. 还真是倍数 ...
最新文章
- 夏天和空调_您可以在今年夏天开始学习650项免费的在线编程和计算机科学课程...
- canvas做一个简单气泡图
- 用cmd运行java程序
- 如何用好消息推送(JPush)为app拉新、留存、促活
- SQL查询【根据生日计算】
- Healing Psoriasis The Natural Alternative-序言(未完待续)
- javascript 框架_每个JavaScript框架教程写的时间都超过5分钟
- JOpt Simple OptionParser解析命令参数
- 儿童手表还能这么用?定位功能防出轨 网友:这令人窒息的爱情
- codeforce #164 div2
- linux语音识别_linux语音识别 arm_linux 语音识别引擎 - 云+社区 - 腾讯云
- python 2 版本中的input() 和 raw_input() 函数的比较
- 西威SIEI电梯变频器维修图纸
- 生信笔记:系统进化树的分类
- Python操纵Word神器——python-docx大全(含插入pptx图表)
- 深度学习利器之自动微分(2)
- Pearson,Kendall和Spearman三种相关分析方法的异同
- 【C语言基础学习---扫雷游戏】(包含普通版+递归炼狱版)
- 详解C++中的析构函数
- python下载成功的标志_电脑安装python过后的图标
热门文章
- 夜班媒体人援助项目在京启动,陈于冰说:“一直以来.....
- 中科院吕本富:“互联网+”已产生泡沫
- ctp服务器的出版文件在那里,ctp行情服务器地址
- 计算机视觉 | 面试题:10、梯度消失和爆炸以及解决方法
- 动手学moveit2|介绍和安装
- knn算法,利用numpy简单实现
- 2022-2027年中国海洋油气开采行业市场全景评估及发展战略规划报告
- 弹性公网IP(EIP)
- CSS3 动画效果
- 人工智能工程师的三个层次