[luogu5438]记忆
令$f(x)=\frac{x}{\max_{k^{2}|x}k^{2}}$,最优解即将$f(l),f(l+1),...,f(r)$排序,那么每存在一种不同的数则答案减1,那么$x$出现当且仅当$f(x)=x$且存在$k$满足$l\le xk^{2}\le r$
枚举$k$,那么即求$(\lfloor\frac{l-1}{k^{2}}\rfloor,\lfloor\frac{r}{k^{2}}\rfloor]$中有多少个数最大平方因子为1,但同时还有重复,即区间右端点要对上一次左端点取min,之后拆成两个前缀和,即求$[1,n]$中$f(x)=x$的数个数
类似洛谷4318,容斥即$\sum_{i=1}^{\sqrt{n}}\mu(i)\lfloor\frac{n}{i^{2}}\rfloor$,再对$i$数论分块,对于$i\le n^{\frac{1}{3}}$,共$o(n^{\frac{1}{3}})$种;对于$i>n^{\frac{1}{3}}$,则有$\frac{n}{i^{2}}\le n^{\frac{1}{3}}$,同样共$o(n^{\frac{1}{3}})$种
再对外层$k$数论分块,对于较小的一部分直接线性筛求出$\mu$,对于较大的部分套用上面的做法,考虑复杂度:对于$k\le r^{x}$,复杂度为$r^{\frac{1}{3}}\int_{0}^{r^{x}}k^{-\frac{2}{3}}\ dk=o(r^{\frac{x+1}{3}})$;对于$k>r^{x}$,则有$\frac{r}{k^{2}}\le r^{1-2x}$,复杂度为$o(r^{1-2x})$
取$\frac{x+1}{3}=1-2x$,解得$x=\frac{2}{7}$,总复杂度为$o(r^\frac{3}{7})$,可以通过

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 10000005
4 #define ll long long
5 int p[N],vis[N],mu[N],s1[N],s2[N];
6 ll l,r,ans;
7 ll calc(ll n){
8 if (n<N-4)return s2[n];
9 ll ans=0;
10 for(ll i=1,j;i*i<=n;i=j+1){
11 j=(ll)sqrt(n/(n/(i*i)));
12 ans+=n/(i*i)*(s1[j]-s1[i-1]);
13 }
14 return ans;
15 }
16 int main(){
17 mu[1]=1;
18 for(int i=2;i<N-4;i++){
19 if (!vis[i]){
20 p[++p[0]]=i;
21 mu[i]=-1;
22 }
23 for(int j=1;(j<=p[0])&&(i*p[j]<N-4);j++){
24 vis[i*p[j]]=1;
25 if (i%p[j])mu[i*p[j]]=mu[i]*mu[p[j]];
26 else{
27 mu[i*p[j]]=0;
28 break;
29 }
30 }
31 }
32 for(int i=1;i<N-4;i++){
33 s1[i]=s1[i-1]+mu[i];
34 s2[i]=s2[i-1]+mu[i]*mu[i];
35 }
36 scanf("%lld%lld",&l,&r);
37 l--;
38 ans=r-l;
39 ll las=r;
40 for(ll i=1,j;i*i<=r;i=j+1){
41 if (i*i>l)j=(ll)sqrt(r/(r/(i*i)));
42 else j=(ll)sqrt(min(l/(l/(i*i)),r/(r/(i*i))));
43 ans-=calc(min(r/(i*i),las))-calc(l/(i*i));
44 las=l/(i*i);
45 }
46 printf("%lld",ans);
47 }
[luogu5438]记忆的更多相关文章
- vim(vi)常用操作及记忆方法
vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它.但是,vim作为一个“纯字符”模式下的工具,它的操作和WINDOWS中的文本编辑工具相比多少有些复杂.这 ...
- Java基础加强之集合篇(模块记忆、精要分析)
千里之行,始于足下.把别人的变成自己,再把自己的分享给别人,这也是一次提升的过程.本文的目的是以一篇文章从整体把握集合体系又不失一些细节上的实现,高手路过. 集合的作用与特点 Java是一门面向对象语 ...
- 【验证】C# dataSource 的记忆功能
做项目时遇到的问题:dataSource被ComboBox引用过一次,会记忆最后一次选中的值,然后下一次再用时这个值会直接呈现在ComboBox中. 为验证是dataSource还是ComboBox自 ...
- 挣值管理(PV、EV、AC、SV、CV、SPI、CPI) 记忆
挣值管理法中的PV.EV.AC.SV.CV.SPI.CPI这些英文简写相信把大家都搞得晕头转向的.在挣值管理法中,需要记忆理解的有三个参数:PV.AC.EV. PV:计划值,在即定时间点前计划 ...
- *HDU1142 最短路+记忆化dfs
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- Cocos2dx3.11.1Android播放视频,后台 黑屏,无法记忆播放bug修改
/* * Copyright (C) 2006 The Android Open Source Project * Copyright (c) 2014 Chukong Technologies In ...
- Android狂记忆
虽然说技术人员偏爱实战,而不屑理论或记忆,但实战之前,若是记忆一些知识,开发起来将会如虎添翼,不说了,开始狂记吧! Android 系统包说明: android.app :提供高层的程序模型.提供基 ...
- 关于javascript对象的简单记忆法
关于javascript对象方法的简单记忆法(个人整理) string对象: 大号小号闪烁加链接./big/small/blink/link/ 粗体斜体打字删除线./bold/italics/fixe ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
随机推荐
- Windows下node-gyp查找VS安装路径简单解析
node-gyp的作用我已经不想赘述了,这里给一个我之前文章的链接:cnblogs看这里,知乎看这里.本文主要从源码入手,介绍node-gyp查找VisualStudio的过程 为了方便我们研究nod ...
- CSharpEntityFramework与CodeFirst实践
CSharpEntityFramework与CodeFirst实践 前言 当我们进行开发的时候,常常会用到数据库来对数据进行持久化的操作,有的时候,我们并不想要在进行代码开发的过程中,还去关注数据库的 ...
- RabbitMQ的web页面介绍(三)
一.Virtual Hosts 每一个 RabbitMQ 服务器都能创建虚拟的消息服务器,我们称之为虚拟主机 (virtual host) ,简称为vhost.每一个 vhost 本质上是一个独立的小 ...
- bzoj1972 SDOI2010-----猪国杀(模拟)
题目自己去找吧 记得数据范围是<=10 注意事项: 1.牌库空的时候,要不断的抽第一张牌 2.反贼的决斗永远是向主公发的 3.每次判定无懈的时候,都是从使用锦囊的那个牌开始,记得敌意和殷勤的判断 ...
- 1.2 Simple Code!(翻译)
Simple Code! 简洁编码 Playing football is very simple, but playing simple football is the hardest thing ...
- 【数据结构与算法Python版学习笔记】基本数据结构——列表 List,链表实现
无序表链表 定义 一种数据项按照相对位置存放的数据集 抽象数据类型无序列表 UnorderedList 方法 list() 创建一个新的空列表.它不需要参数,而返回一个空列表. add(item) 将 ...
- Wireshark 过滤器的使用
符号 例子 = = tcp.port = = 80 过滤出来TCP包含80端口的数据包 != ip.src != 127.0.0.1 ip的原地址不是127.0.0.1过滤出来 > lp.len ...
- 嵌入式单片机之stm32串口你懂了多少!!
stm32作为现在嵌入式物联网单片机行业中经常要用多的技术,相信大家都有所接触,今天这篇就给大家详细的分析下有关于stm32的出口,还不是很清楚的朋友要注意看看了哦,在最后还会为大家分享有些关于stm ...
- 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接建立---三次握手、tcp连接释放---四次握手)
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105516090 学习课程:<2019王道考研计算机网络> 学习目的 ...
- 【做题记录】[NOI2008] 假面舞会—有向图上的环与最长链
luogu 1477 [NOI2008] 假面舞会 容易发现: 如果图中没有环,那么面具种数一定是所有联通块内最长链之和,最少为 \(3\) . 如果有环,则面具种数一定是所有环的大小的最大公约数. ...