P2261 [CQOI2007]余数求和 (数论)
题目链接:传送门
题目:
题目背景 数学题,无背景
题目描述 给出正整数n和k,计算G(n, k)=k mod + k mod + k mod + … + k mod n的值,其中k mod i表示k除以i的余数。例如G(, )= mod + mod + mod + mod + mod …… + mod =+++++++++=
输入输出格式
输入格式: 两个整数n k 输出格式: 答案 输入输出样例
输入样例#: 输出样例#: 说明 %: n,k <= %: n,k <= ^ % n,k <= ^
思路:
有两点:(以下的除法都表示整数除法)
① k%n = k - k/n*n;
② 对于任意的正整数k,k/x的值的数量是√k级别的(1 ≤ x ≤ n)。
枚举k/x的值,则对于所有k/x的值相同的x,对应的k/x*x为一个公差为k/x的等差数列,用公式可以O(1)求出和。
总复杂度为O(√k)
#include <bits/stdc++.h> using namespace std;
typedef long long ll;
#define min(a, b) a<b?a:b ll N, k, ans;
int main()
{
cin >> N >> k;
ans = N*k;
for (int x = , gx; x <= N; x = gx+) {
gx = k/x ? min(k/(k/x), N) : N;
ans -= (k/x) * (x+gx) * (gx-x+) / ;
}
cout << ans << endl;
return ;
}
P2261 [CQOI2007]余数求和 (数论)的更多相关文章
- 洛谷P2261 [CQOI2007] 余数求和 [数论分块]
题目传送门 余数求和 题目背景 数学题,无背景 题目描述 给出正整数n和k,计算G(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod ...
- LUOGU P2261 [CQOI2007]余数求和(数论分块)
传送门 解题思路 数论分块,首先将 \(k\%a\) 变成 \(k-a*\left\lfloor\dfrac{k}{a}\right\rfloor\)形式,那么\(\sum\limits_{i=1}^ ...
- 洛谷 P2261 [CQOI2007]余数求和 解题报告
P2261 [CQOI2007]余数求和 题意: 求\(G(n,k)=\sum_{i=1}^n k \ mod \ i\) 数据范围: \(1 \le n,k \le 10^9\) \(G(n,k)\ ...
- 洛谷——P2261 [CQOI2007]余数求和
P2261 [CQOI2007]余数求和 关键在于化简公式,题目所求$\sum_{i=1}^{n}k\mod i$ 简化式子,也就是$\sum_{i=1}^{n}(k-\frac{k}{i}\time ...
- [Luogu P2261] [CQOI2007]余数求和 (取模计算)
题面 传送门:https://www.luogu.org/problemnew/show/P2261 Solution 这题显然有一个O(n)的直接计算法,60分到手. 接下来我们就可以拿出草稿纸推一 ...
- P2261 [CQOI2007]余数求和 【整除分块】
一.题面 P2261 [CQOI2007]余数求和 二.分析 参考文章:click here 对于整除分块,最重要的是弄清楚怎样求的分得的每个块的范围. 假设$ n = 10 ,k = 5 $ $$ ...
- [洛谷P2261] [CQOI2007]余数求和
洛谷题目链接:[CQOI2007]余数求和 题目背景 数学题,无背景 题目描述 给出正整数n和k,计算G(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n ...
- 洛谷 P2261 [CQOI2007]余数求和 ||整除(数论)分块
参考:题解 令f(i)=k%i,[p]表示不大于p的最大整数f(i)=k%i=k-[k/i]*i令q=[k/i]f(i)=k-qi如果k/(i+1)=k/i=qf(i+1)=k-q(i+1)=k-qi ...
- 【洛谷】P2261 [CQOI2007]余数求和
题面?? 点我获得题面QAQ 我这个咕儿终于在csp初赛前夕开始学习数论了! 我是绝对不会承认之前不学数学是因为去年刚开始学OI的时候就跟yyq他们学莫比乌斯反演然后自闭的 分析 对于k mod i, ...
随机推荐
- LY.JAVA面向对象编程.final、多态、抽象类、接口
2018-07-08 13:47:26 final关键字 多态 从右向前念 多态的成员访问特点及转型的理解 多态的问题理解: class 孔子爹 { public int age = 40; p ...
- linux系统管理 系统进程
进程介绍 '进程' 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源 ps命令基本使用 ps命令用来查看在计算机系统中那些程序正在执行,以及执行的 ...
- java 一些容易忽视的小点-数据类型和运算符篇
注释 文档注释: 以"/**"开头以"*/"结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API) 行注释: 以 ...
- UVa 11636 - Hello World! 二分,水题 难度: 0
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- WPF 基于Adorner实现类似Popup效果
1. 什么是Adorner 装饰器是一种特殊类型的FrameworkElement,可用来向用户提供可视提示. 装饰器有很多用途,可用来向元素添加功能句柄,或者提供有关某个控件的状态信息. 2. ...
- spoj705
题解: 后缀数组求出height 然后ans=所有串-所有height 代码: #include<bits/stdc++.h> using namespace std; ; int t,a ...
- Python Django 之 静态文件存放设置
一.静态文件存放路径设置STATICFILES_DIRS 1.在django项目目录下面新建静态文件保存目录 2.在setting中添加相应寻找静态文件目录的配置 STATICFILES_DIRS=( ...
- [Leetcode 376]摇摆序列 Wiggle Subsequence
[题目] A sequence of numbers is called a wiggle sequence if the differences between successive numbers ...
- :单件模式:Singleton
#ifndef __SINGLETON_H__ #define __SINGLETON_H__ class Singleton { private: static Singleton* instanc ...
- 1.3用socketserver创建服务器
socket服务器代码 # -*- coding: utf-8 -*-import socketserver,time myHost = '' myPort = 50007 def now(): #返 ...