当前位置: 首页 > news >正文

CodeForces 616E(数学规律)

题意:

输入n, m(1  ≤  n, m  ≤  10^13),求 n%1 + n%2 + ... + n%m的值.

思路:

n%i = n - n/i(整除)*i;

所以 ∑(i=1, m) n%i 可以转化为 m*n - ∑(i=1, m) n/i*i;

易知:给定一个i,被n整除得c = n/i,另r = n/c,很容易可以得到n整除i到r范围内的所有数的值都是相同的,所以我们另i为下界,r为上界。那么我们求 ∑(i=1, m) n/i*i的时候就可以将它们分成若干组进行求和,另(n/i)相同的连续一段为一组。所以就可以利用等差数列求和公式对i到r范围内进行求和然后再乘上(n/i)就得到了这一段的ans,同理,其他段也是如此。


#include <algorithm>
#include <iostream>
#define LL long long
using namespace std;
const LL mod = 1e9+7;
LL n, m, ans, up, sum, r;
int main()
{
	cin >> n >> m;
	ans = (n%mod)*(m%mod)%mod;
	up = min(n, m);	//当n>m时, 只能求m个模; n<m时, 只能求n个模 
	sum = 0;
	for(LL i = 1; i <= up; ++i)
	{
		r = min(n/(n/i), up);//如果上界超过up, 缩至up 
		LL a = i+r;	//准备求和公式 
		LL b = r-i+1;
		if(a&1) b /= 2;
		else a /= 2;
		sum = (sum + ((a%mod)*(b%mod)%mod)*(n/i)%mod)%mod;//获得此段的ans 
		i = r;
	}
	cout << (ans-sum+mod)%mod << endl;//防止mod之后相减变负数 
	return 0;
}


继续加油~

相关文章:

  • MongoDB aggregate 运用篇(转)
  • 二分图的概念汇总
  • HDU 1429(状压+bfs)
  • 树莓派系统安装初级教程
  • POJ 2528(线段树+离散化)
  • hadoop问题与解决办法
  • HDU 4725(最短路之建图难点)
  • QDU首届易途杯大赛-kk与cillyb的荣誉之战
  • Visual Studio 有哪些好用的插件?
  • QDU首届易途杯大赛-ycb老师与一道简单的物理题
  • SqlTest(2013-07-10)
  • 蓝桥杯-K倍区间(前缀和) 分巧克力(二分)
  • Linux下MySQL5.6源码安装
  • HDU-1024 Max Sum Plus Plus(DP)
  • C#开发微信门户及应用(27)-公众号模板消息管理
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 10个确保微服务与容器安全的最佳实践
  • Netty 4.1 源代码学习:线程模型
  • PhantomJS 安装
  • Python连接Oracle
  • Redis字符串类型内部编码剖析
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • use Google search engine
  • Vue 2.3、2.4 知识点小结
  • 创建一个Struts2项目maven 方式
  • 关于使用markdown的方法(引自CSDN教程)
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 聊聊flink的TableFactory
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 问题之ssh中Host key verification failed的解决
  • 新手搭建网站的主要流程
  • 学习JavaScript数据结构与算法 — 树
  • 原生 js 实现移动端 Touch 滑动反弹
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​MySQL主从复制一致性检测
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #{}和${}的区别?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)ssm高校实验室 毕业设计 800008
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十五)使用Nexus创建Maven私服
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)setTimeout 和 setInterval 的区别