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

zr模拟赛day8T2

正变换无法确定朝大还是朝小变换
考虑逆变换,因为逆变换只能是大减小
发现变成了辗转相减的形式
考虑优化成辗转相除
发现可以记录辗转相除中的每个关键点
记录成一个三元组
然后就发现可以二分查询了
有一个小细节是记录逆变换的时候要考虑是否为第一次变换

点击查看代码
#include<bits/stdc++.h>
#define fir first
#define sec second
#define ll long long
#define pii pair<int,int>
#define e_b emplace_back 
#define p_b push_back
#define il inline
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define tri tuple<ll,ll,ll>
using namespace std;
const int N=1e5+1;
int n,q;
int m1,m2;
tri p1[N<<6],p2[N<<6];
signed main(){ios;cin>>n>>q;for(int i=1;i<=n;i++){ll x,y,f=0;cin>>x>>y;while(x&&y){if(x<=y){ll b=y%x;p1[++m1]={x,b,y-f},y%=x,f=1;}else{ll b=x%y;p2[++m2]={y,b,x-f},x%=y,f=1;}}}sort(p1+1,p1+m1+1);sort(p2+1,p2+m2+1);while(q--){ll x,y;cin>>x>>y;int ans=0;ans=upper_bound(p1+1,p1+m1+1,tri{x,y%x,1ll<<60})-p1;//保证前两位相等ans-=lower_bound(p1+1,p1+m1+1,tri{x,y%x,y})-p1;//至少从y开始ans=upper_bound(p2+1,p2+m2+1,tri{y,x%y,1ll<<60})-p2;ans-=lower_bound(p2+1,p2+m2+1,tri{y,x%y,x})-p2;cout<<ans<<'\n';}return 0;
}
http://www.hskmm.com/?act=detail&tid=39291

相关文章:

  • 251026
  • 2025 年 10 月食堂厨房设备厂家最新推荐,聚焦资质、案例、售后的食堂场景深度解读
  • embedding
  • 2025 年 10 月不锈钢厨房设备厂家最新推荐,产能、专利、环保三维数据透视
  • 2025 年 10 月餐饮厨房设备厂家最新推荐,实力品牌深度解析采购无忧之选!
  • DINO版本进化
  • 基于深度学习神经网络协同过滤模型(NCF)的视频推荐体系
  • sometime some time sometimes
  • 关于容斥原理
  • 可变字符串
  • 欧拉定理
  • 给安卓设置背景色的时候保持默认按钮样式(关于使用setBackgroundColor导致丢失默认按钮样式的问题)
  • 分片上传与断点续传实现详解
  • 2025 年 10 月展示柜厂家最新推荐,技术实力与市场口碑深度解析!
  • 手把手在 Linux 上安装 Docker 与 Docker Compose(包含 Ubuntu、CentOS 等 11 个发行版)
  • 2025 年 10 月展示柜厂家最新推荐,精准检测与稳定性能深度解析!
  • L
  • 数据处理方法汇总
  • 一些疑问
  • 2025 年 10 月外墙涂料厂家最新推荐,聚焦高端定制需求与全案交付能力
  • 2025年10月长白山亲子酒店推荐榜:四季主题与温泉度假对比排行
  • 2025年10月益生菌品牌推荐榜:全维度对比与榜单解读
  • 2025年10月工装设计公司推荐榜:全国服务力对比评测
  • 2025 年 10 月外墙涂料厂家最新推荐,精准检测与稳定性能深度解析
  • 2025年10月美容仪品牌推荐:无创无痛对比评测榜
  • 进程API
  • 2025年10月中国遗产继承律师推荐榜:五强对比全解析
  • 2025年10月法律咨询律所推荐榜:盈科多领域权威排名一览
  • 2025年10月中国短视频制作公司排行榜:五强实测推荐
  • php_sha1函数特性