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

大连手机自适应网站制作公司14版哥斯拉的官方做的宣传网站

大连手机自适应网站制作公司,14版哥斯拉的官方做的宣传网站,wordpress自适应自媒体主题,公司做网站的费用用途写什么1.数论分块的含义 数论分块算法,就是枚举出使得取整函数发生变化的地方。 例如,对表达式 ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor ⌊in​⌋使用数论分块算法,就可以在 O ( n ) O(\sqrt n) O(n ​)的时间复杂度下枚举所有满足 ⌊ n i − 1 ⌋…

1.数论分块的含义

数论分块算法,就是枚举出使得取整函数发生变化的地方。
例如,对表达式 ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor in使用数论分块算法,就可以在 O ( n ) O(\sqrt n) O(n )的时间复杂度下枚举所有满足 ⌊ n i − 1 ⌋ + 1 = ⌊ n i ⌋ \lfloor \frac{n}{i-1}\rfloor+1 = \lfloor \frac{n}{i} \rfloor i1n+1=in的 i 。

2.算法模板

long long r;
for(int l = 1; l <= n; l = r + 1)
{r = k/(k/l)/*your code*/
}

变量 l 就是取整函数发生变化的位置,即满足 ⌊ n l − 1 ⌋ + 1 = ⌊ n l ⌋ \lfloor \frac{n}{l-1}\rfloor+1 = \lfloor \frac{n}{l} \rfloor l1n+1=ln(l = 1除外)的位置,变量 r 就是满足 ⌊ n x ⌋ = ⌊ n l ⌋ \lfloor \frac{n}{x}\rfloor = \lfloor \frac{n}{l} \rfloor xn=ln的所有x 中最大的一个。
直观上,该过程时间复杂度小于 O ( n ) O(n) O(n),因为每次往后跳的长度大于1,
该算法的实际复杂度为 O ( n ) O(\sqrt n) O(n )
正确性证明和时间复杂度证明,详见此处。写题不需要证明。

3.算法的优化点

将所有 ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor in结果一样的 i 一并取出,使得时间复杂度降为 O ( n ) O(\sqrt n) O(n )
涉及取整的地方均可能用到此算法,包括但不限于,整除(练习题1)、最大公因数(练习题3)、最小公倍数(练习题2)、取模(本文例题)。

4.例题

P2261 [CQOI2007] 余数求和

题目描述

给出正整数 n n n k k k,请计算

G ( n , k ) = ∑ i = 1 n k m o d i G(n, k) = \sum_{i = 1}^n k \bmod i G(n,k)=i=1nkmodi

其中 k m o d i k\bmod i kmodi 表示 k k k 除以 i i i 的余数。

输入格式

输入只有一行两个整数,分别表示 n n n k k k

输出格式

输出一行一个整数表示答案。

输入输出样例 #1

输入 #1

10 5

输出 #1

29

说明/提示

样例 1 解释

G ( 10 , 5 ) = 0 + 1 + 2 + 1 + 0 + 5 + 5 + 5 + 5 + 5 = 29 G(10, 5)=0+1+2+1+0+5+5+5+5+5=29 G(10,5)=0+1+2+1+0+5+5+5+5+5=29

数据规模与约定
  • 对于 30 % 30\% 30% 的数据,保证 n , k ≤ 1 0 3 n , k \leq 10^3 n,k103
  • 对于 60 % 60\% 60% 的数据,保证 n , k ≤ 1 0 6 n, k \leq 10^6 n,k106
  • 对于 100 % 100\% 100% 的数据,保证 1 ≤ n , k ≤ 1 0 9 1 \leq n, k \leq 10^9 1n,k109

解题思路

  • a % b = a − ⌊ a b ⌋ ∗ b a \% b =a- \left \lfloor \frac{a}{b} \right \rfloor *b a%b=abab
  • 求和时,前半部分和后半部分,分开处理。
  • 数列 a i = i ∗ ⌊ x i ⌋ a_i =i * \left \lfloor \frac{x}{i} \right \rfloor ai=iix,在 ⌊ x i ⌋ \left \lfloor \frac{x}{i} \right \rfloor ix为不变值的时候,是等差数列。

AC代码

#include<bits/stdc++.h>
#define int long longusing namespace std;
typedef pair<int,int> PII;
const int mod = 998244353;
void solve()
{int n,k;cin >> n >> k;long long ans = 0;ans += n*k;int r;for(int i = 1; i <= n; i = r + 1){if(k/i == 0) break;r = min(k/(k/i),n);ans -= (r-i+1)*(i+r)/2 *(k/i);}cout << ans << '\n';
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);int t = 1;//cin >> t;while(t --){solve();}
}

练习题

  • 【AtCoder Regular Contest 150B】
  • 【2025CCPC北京市赛】
  • 【2021ICPC陕西省赛】
http://www.dtcms.com/a/441127.html

相关文章:

  • 信息化建设 网站浙江做网站的公司有哪些
  • 仿网站出售域名证书如何查询
  • 规划网站的总结网站案例网站建设
  • 最专业的营销网站建设普陀区建设局网站
  • 椒江做网站的公司正能量不良网站进入窗口免费阅读
  • 专门做电子书的网站ui设计介绍
  • 如皋教育门户网站建设经验工业设计作品集
  • 江西网站建设价格低深圳 网站优化公司排名
  • 3天网站seo优化成为超级品牌做视频网站需要什么软件
  • 做百度糯米网站的团队网站建设推广软文
  • 网站建设云电商平台有哪些类型
  • pc端网站开发工具贵州网站推广优化
  • 网站开发与设计这么样做网站购买备案域名
  • cms建站模板appwordpress审核教程
  • 沂南网站设计桐庐营销型网站建设
  • 网站新闻标题字数做推广送网站免费建站
  • 网站有什么到期廊坊seo优化排名
  • 购买友情链接网站泰安房产价格最新
  • 什么软件可以攻击网站厦门外贸网页设计服务
  • 域名net表示什么网站公司企业邮箱申请
  • 免费推广网站视频居家网络架构
  • 玉器珠宝做网站网店推广目的
  • 网站热点关键词深圳做公司英文网站多少钱
  • 两栏式网站黄埔做网站的公司
  • php 网站目录结构电脑做h5比较好的网站
  • 东营做网站哪里好定制网站系统
  • 各大网站什么时候恢复彩色网站客户问题解答
  • 濮阳seo网站建设深圳电商网站设计公司
  • 科技公司的网站网站设计费用明细
  • 天津市建设银行租房网站win7 iis创建网站