原题

给出正整数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}k\%i\)
\(=\sum^n_{i=1}k-\lfloor k/i \rfloor*i\)
\(=n*k-\sum^n_{i=1}\lfloor k/i \rfloor*i\)

\(\lfloor k/i \rfloor\)只有\(\sqrt k\)个取值
证明:
对于所有\(>\sqrt k\)的数,\(\lfloor k/i \rfloor\)一定是一个对应的\(<\sqrt k\)的值,所以最多只有\(2\sqrt k\)个值
也就是说\(\lfloor k/i \rfloor\)的取值是这样的:

所以每次i为左端点,k/(k/i)为右端点,这一段就可以直接处理。复杂度为\(O(\sqrt n)\)

#include<cstdio>
typedef long long ll;
using namespace std;
int n,k;
ll ans;int main()
{scanf("%d%d",&n,&k);if (n>k) ans=(ll)(n-k)*k,n=k;int r;for (int i=1;i<=n;i=r+1){int t=k/i;r=k/t;if (r>=n) r=n;ans+=(ll)(r-i+1)*k-(ll)(r-i+1)*(i+r)/2*t;}printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/mrha/p/8202475.html

[bzoj] 1257 余数之和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: 1138  Solved: 509 [Submit][S ...

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

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

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

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

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

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

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

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

  7. 【BZOJ1257】余数之和sum,数论练习之取值讨论

    传送门 写在前面:之前学长讲过的题目,但我硬是蛋疼了一个小时多 思路:50分随便暴力,100分看到10^9范围的数论题,应该就有两种较为常见的方法应对 1.存在某种特定的关系,甚至可以在O(1)的时间 ...

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

  9. 51nod 1225 余数之和(数论)

    分析:注意到%的意义,n%i=n-[n/i]*i,所以F(n)=n^2-∑[n/i]*i,后面一项可以分块做,对i从1到sqrt(n)直接求,然后对后面的枚举[n/i],用等差数列求和. 1 #inc ...

最新文章

  1. 售后服务成OA品牌竞争重要因素
  2. 蛋白质:结构和功能 Proteins: Structure and Function
  3. hive中建立“按天分区“的外表+存储为ORC文件+指定元数据
  4. maven配置tomcat7
  5. windows副本不是正版怎么办_盗版系统总是崩溃?别着急,让我来告诉你正版系统怎么下载...
  6. 微信内置浏览器调起外部浏览器打开指定网页连接
  7. opencv 凸包讲解和绘制
  8. vijos 1066 树状数组
  9. 手机号归属地区编码_科普:身份证和手机号背后的秘密
  10. 万人拆盲盒,比特小鹿“2周年庆”云托管新团掀高潮
  11. 国开文学英语赏析 2021春(2021年7月)
  12. JavaScript使用手册(一)
  13. 顺丰java_JAVA接入顺丰快递
  14. 滴滴共享单车在深圳被叫停;六六接受京东道歉;宝马发布最新充电网络计划丨价值早报
  15. Tkinter 8.5 参考手册: a GUI for Python (五)8(鼠标)指针
  16. fMRI之dpabi处理经验(一)
  17. Python-matplotlib用法
  18. 十分钟python入门教程
  19. 导出浏览器cookie
  20. 翁恺老师 Python 暑期夏令营开营 | Mo-Tutor全新教学模式上线

热门文章

  1. Android 11 将推出系统试用功能,满意后再正式安装
  2. 新商标表明华为鸿蒙系统在海外或叫做“Harmony OS”
  3. MVC SignalR Hub实时聊天实时Web解决方案
  4. CSS从大图中抠取小图完整教程(background-position应用)【转】
  5. mysql编译安装原理_MySQL编译安装全过程
  6. syn flood 攻击 c 语言源代码,利用Python和C实现syn flood攻击
  7. androidx86安装pc后无法联网_Ubuntu 16.04 安装显卡驱动后循环登录和无法设置分辨率的一种解决方案
  8. 有关“数据统计”的一些概念 -- PV UV VV IP跳出率等
  9. Mybatis foreach 性能问题
  10. 农产品加工进销存单_果蔬行业,用营销版在线进销存3秒开单收款!