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

CF1780E Josuke and Complete Graph

考虑一个数 \(x\) 能够计入答案要满足什么条件,即存在一组 \(\gcd(a,b)=x\)。等价于 \(x|a,x|b,\gcd(\frac{a}{x},\frac{a}{x})=1\)

贪心的想要满足 \(l\le a,b\le r\),那么 \(a\) 取最小的满足能整除 \(x\) 的数即 \(l+x-(l\mod x)=l+x-(l-x\cdot \lfloor\frac{l}{x}\rfloor)=(\lfloor\frac{l}{x}\rfloor+1)\cdot x\)\(b\) 就取 \(a+x\),随意对于任意 \(x\),判断一下是否满足 \((\lfloor\frac{l}{x}\rfloor+2)\cdot x\le r\) 即可。

转化到这做法就显然了,整除分块。

但是注意一下每组的 \(R\) 需要特判一下,因为可能出现 \(l\mod R=0\) 的特殊情况,此时 \(a=\frac{l}{R}\cdot R\)

并且若这组中的数不完全满足条件,这个判断条件显然有单调性二分一下就好。

\(O(T\sqrt{n})\)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
#define pii pair<int,int>
#define fi first
#define se second
#define mp make_pair
//const int N=,mod=1e9+7;
int calc(int x,int R){int l=1,r=1,res=0;while(l<=x){r=x/(x/l);res+=(x%r==0?(x/r+1)*r<=R:(x/r+2)*r<=R);if(r>1&&(x/(r-1)+2)*(r-1)<=R)res+=r-l;else if(r>1){int lf=l,rt=r-1,mid;while(lf<=rt)(mid=lf+rt>>1,(x/mid+2)*mid<=R?lf=mid+1:rt=mid-1);res+=lf-l;}l=r+1;}int lf=x+1,rt=R,mid;while(lf<=rt)(mid=lf+rt>>1,2*mid<=R?lf=mid+1:rt=mid-1);res+=lf-1-x;return res;
}
signed main(){ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int T;cin>>T;while(T--){int l,r;cin>>l>>r;cout<<calc(l,r)<<'\n';} return 0;
}
http://www.jsqmd.com/news/30973/

相关文章:

  • 线程组查看结果树与聚合报告
  • 详细介绍:Oracle OCP认证考试题目详解082系列第46题
  • 2025年香菇品牌推荐与源头厂家排行权威指南
  • 集采压境,数字化转型如何成为国产医疗器械厂商的突围利器?
  • 2025年香菇品牌推荐排行榜前十强
  • C++中的 std::call_once() - Hello
  • jemter接口测试1、2、3
  • 2025年11月洗地机产品推荐:前吸后拖对比榜与促销价排行
  • 单个线程提交
  • 2025年人气正宗地道粤菜餐厅新排行榜推荐
  • 2025.11.04
  • 10.28jemeter依赖于java环境,jemeter安装
  • 2025年11月素材平台对比榜:高品卓特等十强排名全评价
  • 2025年变压器油滤油机供应商及抗燃油滤油机厂家排名解析
  • 10.20.21(请求,响应结构)
  • 2025年披萨生产线供应商推荐,不错的披萨生产线工厂及加工厂排名解析
  • 2025年11月市场地位认证机构对比榜:尚普与华信人权威排名解析
  • 详细介绍:【AI大模型】WPS 接入DeepSeek 实战项目详解
  • 2025年白蚁防治公司排名,这几家值得关注
  • 【LVGL】移植篇
  • Adobe 通杀补丁 GenP/Zii
  • Java智能体框架的繁荣是一种代码异味
  • faust-音高包络
  • 9.8:chrome Dev Tools
  • 2025年比较好的欧洲品牌三段力缓冲铰链厂家最新权威推荐排行榜
  • calico VXLAN 模式有哪些
  • 【2025-11-03】老弟买车
  • 2025年靠谱的特教设备最新TOP厂家排名
  • YOLO检测工作记录
  • lstio