余数之和(HYSBZ - 1257,约数 + 数论分块)

MobaXterm终端工具个人学习版安装包及常用配置备份 资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。 立即下载

一.题目链接.

HYSBZ-1257

二.题目大意:

 Calculate \; f(n, k)=k \%1 + k \% 2 + ... + k \% n\;\;\; (k,n \leq 1e9)

三.分析:

\because a \% b = a - \lfloor \frac{a}{b} \rfloor b

\therefore f(n, k) = (k - \lfloor \frac{k}{1} \rfloor \times 1) + (k - \lfloor \frac{k}{2} \rfloor \times 2) + ... + (k - \lfloor \frac{k}{n} \rfloor \times n)

\therefore f(n, k) = nk - [( \lfloor \frac{k}{1} \rfloor \times 1) + (\lfloor \frac{k}{2} \rfloor \times 2) + ... + (\lfloor \frac{k}{n} \rfloor \times n)]

Conclusion:\;\;\; \lfloor \frac{k}{x} \rfloor \; has \; only \; 2\sqrt k \; values \; at \; most. 

Prove:\;\;\; when \; x \leq \sqrt k, \;\; because \; x \; has \; only \; \sqrt k \; values, \;\; \lfloor \frac{k}{x} \rfloor \; has \; only \; \sqrt k \; values \; at \; most. \\ when \; x > \sqrt k, \;\; because \; \lfloor \frac{k}{x} \rfloor < \sqrt k, \;\; \lfloor \frac{k}{x} \rfloor \; has \; only \; \sqrt k \; values \; at \; most.

From \; the \; above, \; \lfloor \frac{k}{x} \rfloor \; has \; only \; 2\sqrt k \; values \; at \; most.

 From \; the \; above \; we \; can \; see \; that \; \lfloor \frac{k}{x} \rfloor \; is \; composed \; of \; 10^5 \; segments \; at \; most, \; and \; \lfloor \frac{k}{x} \rfloor \; in \; each \; segment \; is \; the \; same.

Therefore, \;we \; only \; need \; to \; find \; the\; position \; of\; the\; beginning\; and\; end\; of \;each\; segment. \\ Then \; the \; sum \; of \; each\; segment \; can\; be \;calculated \; in \; O(10^5) \;by \;formula\; for\; sum\; of\; difference\; series.

 Conclusion:\;\;\; Segment\; that\; start\; with\; x \;end\; at\; g(x) = \lfloor {\frac{k}{ \lfloor {\frac{k}{x}} \rfloor }} \rfloor.

Prove1: \;\;\;Easy \;to\; get:\; g (x) \;is \;a \;non-incrementing\; function.

Prove2: \;\;\; \lfloor \frac{k}{x} \rfloor = \lfloor \frac{k}{g(x)} \rfloor

\because g(x) = \lfloor { \frac{k}{ \lfloor \frac{k}{x} \rfloor } } \rfloor

\therefore k = g(x) \lfloor \frac{k}{x} \rfloor + q \;\; (0 \leq q < \lfloor \frac{k}{x} \rfloor ) \;\;\;\;\;\;\;\;\;\; (1)

\therefore \lfloor \frac{k}{g(x)} \rfloor = \lfloor {\frac{g(x) \lfloor \frac{k}{x} \rfloor + q}{g(x)}} \rfloor = \lfloor \lfloor \frac{k}{x} \rfloor + \frac{q}{g(x)} \rfloor \geq \lfloor \frac{k}{x} \rfloor \;\;\;\;\;\;\;\;\;\; (2)

\because \frac{k}{x} \geq \lfloor \frac{k}{x} \rfloor

\therefore \frac{k}{\frac{k}{x}} \leq \frac{k}{\lfloor \frac{k}{x} \rfloor}

\therefore \lfloor \frac{k}{\frac{k}{x}} \rfloor \leq \lfloor \frac{k}{\lfloor \frac{k}{x} \rfloor } \rfloor

\therefore g(x) \geq \lfloor \frac{k}{\frac{k}{x}} \rfloor = \lfloor x \rfloor = x

\therefore \frac{k}{g(x)} \leq \frac{k}{x}

\therefore \lfloor \frac{k}{g(x)} \rfloor \leq \lfloor \frac{k}{x} \rfloor \;\;\;\;\;\;\;\;\;\; (3)

From \; (2) \;and\; (3), \; \lfloor \frac{k}{g(x)} \rfloor = \lfloor \frac{k}{x} \rfloor

Prove3: \;\;\; \lfloor \frac{k}{g(x + 1)} \rfloor \neq \lfloor \frac{k}{x} \rfloor

Suppose \;\lfloor \frac{k}{g(x) + 1} \rfloor = \lfloor \frac{k}{x} \rfloor

\therefore k = (g(x) + 1) \lfloor \frac{k}{x} \rfloor + q\;' \;\;\; (0 \leq q\;' < g(x) + 1)

\therefore k = g(x) \lfloor \frac{k}{x} \rfloor + \lfloor \frac{k}{x} \rfloor + q\;'\;\;\; (0 \leq q\;' < g(x) + 1) \;\;\;\;\;\;\;\;\;\; (4)

From \; (1) \;and\; (4), \; \lfloor \frac{k}{x} \rfloor + q\;' = q < \lfloor \frac{k}{x} \rfloor \;\;\; (0 \leq q\;' < g(x) + 1)

\because The \;above\; formula \;is\; obviously\; contradictory.

\therefore \lfloor \frac{k}{g(x + 1)} \rfloor \neq \lfloor \frac{k}{x} \rfloor

From\; Prove_{1, 2, 3},\;segment\; that\; start\; with\; x \;end\; at\; g(x) = \lfloor {\frac{k}{ \lfloor {\frac{k}{x}} \rfloor }} \rfloor.

四.代码实现:

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main()
{
    int n, k;
    scanf("%d %d", &n, &k);
    ll ans = 1ll * n * k;
    for(int l = 1, r; l <= n; l = r + 1)
    {
        if(k / l == 0)  break;
        r = min(k / (k / l), n);
        ans -= 1ll * (k / l) * (l + r) * (r - l + 1) / 2;
    }
    printf("%lld\n", ans);
    return 0;
}

 

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取 立即下载

相关推荐

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

关于约数,余数的算法

欧几里得算法-gcd gcd(a,b)=gcd(b,a%b),其中a为整数,b是不为0的整数. 证明: 如果a<b,a%b=a,明显有,gcd(a,b)=gcd(b,a). 如果a>=b,设a=k*b+r.设d为a,b的任意公因数,因为d|a,d|b,所以d|(a-k*b),因此d也是b和a%b的公因数,反过来亦成立,因此a和b公因数集合和b和a%b的公因数集合相同,...

dashengchong6303的博客 687

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

bzoj 1257(数学)

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。

顺 603

11232131231231是的

11232131231231是的

STM32串口接收避坑指南:为什么你的USART_IT_IDLE中断不触发?附完整调试流程

本文深入解析STM32串口接收中断机制,特别是USART_IT_IDLE中断不触发的常见原因及解决方案。通过详细分析中断标志清除顺序、波特率配置、硬件连接等关键因素,并提供完整的调试流程和代码示例,帮助开发者快速定位并解决串口通信问题。

weixin_42519985的博客 347

【Ybtoj 第28章例5】余数之和【质数和约数】

解题思路 代码 #include<iostream> #include<cstdio> #include<algorithm> #include<iomanip> #include<cstring> #include<cmath> #include<map> #include<queue> #define ll long long #define ldb long double using namesp...

在人间贩卖声音 181

硬件工程师的蜗牛成长路

1、《模拟电路课程》R/L/C/继电器/光耦/二极管/三极管/MOS管磁珠/ESD/TVS/肖特基二极管/稳压二极管/保险丝/GDT/TSS/光耦/MOS/运放/BJT比较器/面板开关/按键开关/拨码开关/BUCK/LDO/电源防护器件LM5069单输出PLL/多路输出PLL/单端晶振/差分晶振/晶体(这方面不熟悉,待以后补充)1)速度传感器2)温度传感器3)倾斜角传感器4)火焰传感器5)红外传感器6)呼吸心跳采集chaunganqi1)数字隔离 电平转换芯片/磁隔离/专用隔离芯片。

caozhaokun的博客 1979

HYSBZ 1050(队列-大小边比值最大的路径)

已知边,判断2点连通性 要用并查集……千万别搜啊~ Program ee; var edge:array[1..10000,1..3] of longint; s,t,n,m,i,j,pmax,pmin:longint; father:array[1..1000] of longint; procedure swap(var a,b:longint); var ...

爱.NET 176

大聪明教你学Java | Seata 2.5 从下载到运行:全流程编译部署教程

Seata 2.5 版本带来了不少特性优化,但实际部署时却发现一个尴尬问题:全网找不到一篇完整覆盖「Git 源码下载→本地编译→环境配置→启动验证」的实操教程。作为一名踩遍无数坑才成功跑通的开发者,我深知这个过程的煎熬:Git 拉取源码后编译失败、依赖版本冲突、配置文件参数混乱、启动时端口占用或连接报错… 每一个坑都能耗费数小时排查。为了让后续开发者少走弯路,我将自己从0到1的完整实操经验整理成文,跟着步骤走即可成功运行 Seata 2.5.

不肯过江东丶 2072

第3.1.3章 机器人第三方库实战总结:ROS 2 入门实战及和ROS1的对比,打通机器人开发的任督二脉

本文针对机器人SLAM开发中第三方库的学习痛点,重点介绍ROS 2在SLAM中的应用。文章首先对比ROS 1与ROS 2的核心差异,梳理ROS 2知识图谱,包括节点、话题、服务等核心概念。通过实战项目演示如何构建激光SLAM节点,结合代码详解运行流程。最后给出学习建议,强调动手实践的重要性,帮助开发者快速掌握ROS 2在SLAM开发中的关键应用。

行知SLAM 180

HYSBZ 2957(分块)

题意: 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。   为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与之前...

swineherd的博客 375

(七)独立按键

(七)独立按键

m0_52555663的博客 1717

余数之和sum

余数之和sum Time Limit:5000MS   Memory Limit:165888KB   64bit IO Format:%lld & %llu SubmitStatus Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,

xdlove 1329

基于 YOLOv26 的校园安全监控系统:多场景应用

本文提出了一种基于YOLOv26的校园安全监控系统,采用多场景应用架构实现对校园安全的智能监测。系统核心技术包括YOLOv26目标检测、DeepSORT目标跟踪、区域安全定义和行为分析等模块,通过边缘计算平台实现实时处理。研究构建了包含多种校园场景的专业数据集,并采用数据增强技术提升模型性能。系统可检测人员、车辆和物品等目标,分析其行为轨迹,评估安全风险并触发告警。实验结果表明,该系统能有效识别校园安全隐患,为安全管理提供智能化解决方案。

一键难忘的博客 503

【OpenCV】图像的像素直方图 图像特征点 cv::FAST cv::ORB ORB_SLAM2::ORB

文章目录图像直方图代码实现cv::FAST和cv::ORB 检测图像特征点cv::FAST和cv::ORB 检测图像特征点代码实现ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比代码实现 图像直方图代码实现 图像是由不同数值(颜色)的像素构成的,像素值在图像中的分布情况是图像的重要属性,可以用直方图修改图像的外观,标识图像的内容,检测图像中特定的物体或纹理。 单通道灰度图像中每个像素都有一个 0(黑色)-255(白色)的整

小秋 AI SLAM 入门实战教程 2510

HYSBZ 3944 Sum

HYSBZ 3944 Sum

X_rotator的博客 486

【技术科普】破解政务跨系统数据壁垒!亘川一网统管平台多源数据同步技术解析

本文解析亘川一网统管平台多源数据同步技术,针对政务跨系统数据壁垒难题,介绍组件的数据采集、校验、审计留痕等核心能力,结合营商环境项目落地案例,对比传统开发模式差异,讲解开源组件的实践价值,为政务项目开发者提供落地参考。

weixin_67440240的博客 635

HYSBZ - 1257 余数之和sum (技巧&规律)

HYSBZ - 1257 余数之和sum Time Limit: 5000MS   Memory Limit: 165888KB   64bit IO Format: %lld & %llu Submit Status Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k

yanghui07216的博客 928

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

问题 E: 余数之和

人群淹没,你我不及诉说。一声雁过,往事如昨。只望离别不多,再赏盛世烟火。 题目描述 给出正整数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 ...

0k-ok 396

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【CQOI 2007】余数之和(数论分块)

题目链接 【BZOJ 1257】余数之和 题解 ∑i=1nk&amp;amp;nbsp;mod&amp;amp;nbsp;i=n×k−∑i=1ni×⌊ki⌋∑i=1nk&amp;amp;nbsp;mod&amp;amp;nbsp;i=n×k−∑i=1ni×⌊ki⌋\sum_{i=1}^n{k\ mod\ i}=n\times k-\sum_{i=1}^n{i\times\lfloor\frac{k}{i}\rfloor} 而⌊ki⌋⌊ki⌋\l...

Galaxy Coder 的博客 444

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

降雨量 HYSBZ - 1067

我们常常会说这样的话:“X年是自Y年以来降雨量最多的”。它的含义是X年的降雨量不超过Y年,且对于任意 Y<Z<X,Z年的降雨量严格小于X年。例如2002,2003,2004和2005年的降雨量分别为4920,5901,2832和3890, 则可以说“2005年是自2003年以来最多的”,但不能说“2005年是自2002年以来最多的”由于有些年份的降雨量未 知,有的说法是可能正确也可以不正确的。 I...

loooooog的博客 431

(算法竞赛进阶指南)余数之和(约数)

分析:由k%i=k-k/i*i(k/i是下取整)可得(k%i)=(k-k/i*i)=n*k-(k/i*i) 而减号右边的部分可以用简便方法来进行计算,我们发现,k/i的值可能对于多个i都是相同的,而且这样的i是连续的,我们知道了这个如果能求出来满足k/i=j的区间[l,r]那么就可以直接求出这一块区间的k/i*i的和就是(l+r)*(r-l+1)*j了,现在问题就是求满足k/i=j的左右边界,或者换句话说就是知道左边界如何求取右边界,现在不妨假设左边界为l,那么右边界就是k/(k/l),找几个样例试一下就

AC__dream的博客 461

余数之和 HYSBZ - 1257

给出正整数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。 1&lt;=n ,k&lt;=10^...

Coldfresh的博客 416

余数之和

F(n) = (n % 1) + (n % 2) + (n % 3) + ...... (n % n)。其中%表示Mod,也就是余数。 例如F(6) = 6 % 1 + 6 % 2 + 6 % 3 + 6 % 4 + 6 % 5 + 6 % 6 = 0 + 0 + 0 + 2 + 1 + 0 = 3。给出n,计算F(n), 由于结果很大,输出Mod 1000000007的结果即可。 ...

brucehb的专栏 1328

HYSBZ 1257:余数之和sum【数学】

余数之和sum Time Limit:5000MS     Memory Limit:165888KB     64bit IO Format:%lld & %llu Submit Status Practice HYSBZ 1257 Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … +

所谓梦想,就是永不停息的疯狂。。。。。 1026
上一篇: SDNU_ACM_ICPC_2020_Winter_Practice_5th【解题报告】
下一篇: Hankson的趣味题 (算法竞赛进阶指南,约数)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值