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

P14079 [GESP202509 八级] 最短距离 题解

P14079 [GESP202509 八级] 最短距离

题意

给定一个包含 101810^{18}1018 个点的无向完全图,如果两个点的编号互质,那么连接两点的边边权为 ppp,否则为 qqq。给出 nnn 个询问,每次求两点 aia_{i}aibib_{i}bi 间的最短路径长度(1≤ai,bi≤1091\le a_{i},b_{i}\le 10^91ai,bi109)。

题解

赛时差点被诈骗了。

如果 aia_{i}aibib_{i}bi 互质,那么要么走直连的边,答案为 ppp,要么另走其他若干边权为 qqq 的边,这时显然最少走两条边。走两条边可以吗?因为 ai×bi≤1018a_{i}\times b_{i}\le 10^{18}ai×bi1018,所以显然可以走 ai→ai×bi→bia_{i}\to a_{i}\times b_{i}\to b_{i}aiai×bibi。最终答案即为 min⁡(p,2q)\min(p,2q)min(p,2q)

同理,如果 aia_{i}aibib_{i}bi 不互质,可以走直连边,也可以走 ai→1→bia_{i}\to 1\to b_{i}ai1bi。最终答案即为 min⁡(2p,q)\min(2p,q)min(2p,q)

特别的,如果 ai=bia_{i}= b_{i}ai=bi,则答案为 0。如果 ai=1a_{i}=1ai=1bi=1b_{i}=1bi=1,则答案只能是 ppp

代码

#include<iostream>
#include<algorithm>
using namespace std;
int n,p,q,a,b;
int main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n>>p>>q;while(n--){cin>>a>>b;if(a==b) cout<<"0\n";else if(a==1||b==1) cout<<p<<"\n";else if(__gcd(a,b)==1) cout<<min(p,2*q)<<"\n";else cout<<min(q,2*p)<<"\n";}return 0;
}
http://www.dtcms.com/a/427908.html

相关文章:

  • SQL Server 2019系统的认识及其安装
  • 运城市做网站公司eclipse可以做门户网站嘛
  • 第一ppt网站wordpress滑动图片
  • 东莞网站建设团队全网天下vps做网站空间
  • 优维×超聚变联合发布Elevo一体机:共建AI时代基础设施新业态
  • 做网站的注意点自动优化网站建设电话
  • 科技企业网站模板一个公司的官网怎么做
  • OpenCV 基本模块
  • PyCharm2025.2 大更新,AI是亮点!
  • 网站怎么做来流量吗网页设计基础实训
  • vuejs 做网站 性能wordpress 能装windows
  • CKAD-CN 考试知识点分享(11) Dockerfile
  • 给人做代工的网站百度地图推广
  • C语言中#pragma的用法
  • 网络原理-HTTP补充2
  • PAD,wafer,MPW
  • 做动画网站wordpress模板查询
  • 数字经济专业就业方向与职业发展分析
  • 网站设计扁平化网站开发背景图
  • 信息系统项目的范围管理(12345智慧政务)
  • 【ubuntu22.04】win11的pycharm本地WSL2部署Gemini Fullstack LangGraph
  • 怎么用手机搭建网站兰州官网优化服务
  • electron 打包web页面解决跨域问题
  • 网站建设 html建设工程招标网官网
  • 自媒体专业宁波网站推广优化外包公司
  • nvm下载node版本,npm -v查看版本报错
  • 网站服务器 电信网站全屏弹出窗口
  • uniapp设置安全区
  • Vue 主应用中同时支持 qiankun 子应用与 iframe 子应用的加载方案
  • 网站icp备案地品牌注册类别