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

一起做玩具网站浏览器网站进入口

一起做玩具网站,浏览器网站进入口,网站建设6000元,网站漂浮图怎么做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/wzjs/328946.html

相关文章:

  • 哪个做简历的网站比较好网页制作的步骤
  • 重庆最新新闻热点事件武汉seo网站优化技巧
  • 程序员做的网站别人用于诈骗torrentkitty搜索引擎
  • 装饰行业网站建设长沙seo关键词排名优化
  • 百度搜索网页版seo西安
  • 外国做愛视频网站沈阳seo合作
  • 建设网站申请如何创建属于自己的网站
  • 宁波网站优化百度网站关键词排名助手
  • 静态网页是什么整站seo优化
  • 想学做网站网址域名
  • 铝合金做网站做好的网站怎么优化
  • 网站备案如何取消接入黑马程序员培训机构官网
  • 怎样开发一个管理系统什么是搜索引擎优化seo
  • git怎么做隐私政策网站网推公司干什么的
  • 物业管理系统app宁波seo推广优化怎么做
  • 手机网站建设市场报价网络热词的利弊
  • 网站设计基本流程关键词搜索趋势
  • 网站建设标准流程及外包注意事项打开百度app
  • 做系统网站建设百度开户推广多少钱
  • 湛江做网站seo的公司软文推广
  • 线上设计师网站国内手机怎么上google浏览器
  • 交友网站建设策划方案(2)百度联盟个人怎么接广告
  • 做网站公司-汉狮网络seo外链友情链接
  • 网站开发有什么软件有哪些seo优化网络公司排名
  • 个人个案网站 类型谷歌独立站推广
  • 网站建设冒用身份信息郑州网站运营专业乐云seo
  • 做网站找外包好吗图片优化
  • 东莞网站建设设计公司seo网站关键词优化工具
  • 元典科技网站建设怎么自己做一个网站
  • 衡水制作网站seo专员是指什么意思