[NOI Online 2022 入门组] 数学游戏
P8255 [NOI Online 2022 入门组] 数学游戏
注:妙哉,此题可以理解为数学题。
思路
由题易得:
z=d_x\times d_y\times \gcd(x,y)^3\\
x=d_x\times \gcd(x,y)\\
y=d_y\times \gcd(x,y)\\
\]
令\(d=\gcd(x,y)\),此时有\(d_x\bot d_y\)
可以得到只要证明出\(d\)的表达式,即可解题。
c=z/x=d_y\times d^2\\
\gcd(c,x^2)=\gcd(d_y\times d^2,d_x^2\times d^2)
=d^2\times\gcd(d_y,d_x^2)=d^2\\
即d^2=gcd(c,x^2)\\
即d=\sqrt{(gcd(c,x^2))}
\]
所以无解的情况有以下两种:
- \(x\nmid z\)
- \(d^2\)解出来不是平方数
题目大概是这样,但这里可能会有一个疑惑:
为什么不可以直接\(d=\gcd(c,x)=\gcd(d_y\times d^2,d_x\times d)\),反正\(d_x\bot d_y\)?
其实这是显然的,因为不保证\(d_x\bot d\),所以结果不会为\(d\)。
总结
当遇到像\(c=d_y\times d^2,x=d_x\times d\)时,不妨将\(x\)平方一下,使目标数的次数相同。
CDOE
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll maxn =1e8+32;
inline ll read_int(){
ll a=0,f=1,g=getchar();
while(g<'0'||g>'9'){if(g=='-') f=-1;g=getchar();}
while(g>='0'&&g<='9') a=a*10+g-'0',g=getchar();
return a*f;
}
inline void write(ll a,ll b){
if(a<0) a=-a,putchar('-');
ll lin[40],cnt=0;
while(a) lin[++cnt]=a%10,a/=10;
if(!cnt) cnt++,lin[cnt]=0;
while(cnt) putchar(lin[cnt]+'0'),cnt--;
if(b) putchar('\n');
}
inline ll gcd(ll a,ll b) {return b==0 ? a : gcd(b,a%b);}
inline void read(){
ll x=read_int(),z=read_int();
if(z%x) {write(-1,1);return;}
z/=x;
ll G=gcd(z,x*x);
ll lin=sqrt(G);
if(lin*lin!=G) {write(-1,1);return;}
write(z/lin,1);
}
int main (){
ll t=read_int();
while(t--) read();
}
[NOI Online 2022 入门组] 数学游戏的更多相关文章
- P6474 [NOI Online #2 入门组] 荆轲刺秦王
P6474 [NOI Online #2 入门组] 荆轲刺秦王 bfs+差分+卡常 本来我其实是场内选手,但是因为记错提交时间,晚了半小时才交,交不上了,就自动降级为了场外选手 题面复杂,不简述了 首 ...
- P7473 [NOI Online 2021 入门组] 重力球
P7473 [NOI Online 2021 入门组] 重力球 题意 给你一个正方形平面,某些位置有障碍,对于平面上两个球,每次你可以改变重力方向使两个球下落到最底端,求使两个球位置重合的最小改变重力 ...
- 洛谷 P6189 - [NOI Online #1 入门组]跑步(根号分治+背包)
题面传送门 题意: 求有多少个数列 \(x\) 满足: \(\sum x_i=n\) \(x_i\geq x_{i+1}\) 答案对 \(p\) 取模. ...你确定这叫"入门"组 ...
- NOI Online 2021 入门组 T1
Description 题目描述 Alice.Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕. 三个人的需求量分别为 \(a, b, c\),现在请你帮他们切蛋糕,规则如下 ...
- [NOI 2020 Online] 入门组T1 文具采购(洛谷 P6188)题解
原题传送门 题目部分:(来自于考试题面,经整理) [题目描述] 小明的班上共有 n 元班费,同学们准备使用班费集体购买 3 种物品: 1.圆规,每个 7 元. 2.笔,每支 4 元. 3.笔记本,每本 ...
- NOI Online #1 入门组 魔法
全网都是矩阵快速幂,我只会倍增DP 其实这题与 AcWing 345. 牛站 还是比较像的,那题可以矩阵快速幂 / 倍增,这题也行. 先 \(Floyd\) 预处理两点之间不用魔法最短距离 \(d_{ ...
- [题解] [NOI Online 2021 入门组 T3] 重力球
题目大意 在一个 \(n\times n\) 的矩形中,题目会给出 \(m\) 个障碍物.有两个小球,你可以选定四个方向(上下左右)的其中一个,小球会朝着这四个方向一直滚动,直到遇到障碍物或是矩形的边 ...
- P6189 [NOI Online #1 入门组] 跑步 (DP/根号分治)
(才了解到根号分治这样的妙方法......) 将每个数当成一种物品,最终要凑成n,这就是一个完全背包问题,复杂度O(n2),可以得80分(在考场上貌似足够了......) 1 #include < ...
- [NOI Online 2022 提高组] 如何正确地排序
\(\text{Solution}\) 当 \(m=2\) 时,\(ans=2n\sum a_{i,j}\) 当 \(m=3\) 时 当然先套路地考虑某一行的贡献,记为第 \(x\) 行 则当取 \( ...
- 【NOI Online 2020】入门组 总结&&反思
前言: 这次的NOI Online 2020 入门组我真的无力吐槽CCF的网站了,放段自己写的diss的文章,供一乐 如下:(考试后当天晚上有感而发) 今天是个好日子!!!(我都经历了什么...... ...
随机推荐
- 如何配置域名的 CNAME —— 添加记录集时,为什么会提示“与已有解析记录冲突”?
参考: https://support.huaweicloud.com/dns_faq/dns_faq_016.html https://developer.qiniu.com/fusion/kb/1 ...
- 记录一次实验室显卡服务器崩溃事件(Ubuntu18.04 server系统,4块NVIDIA的特斯拉显卡)
系统报错(显示屏上的错误): 系统中的日志文件中所有的log文件都没有记录这次崩溃事件. 不过根据屏幕上显示出的报错,大致估计为显卡的问题: 重启后查看显卡地址: 发现报错的显卡是 0号显卡.个人估 ...
- 分享某Python下的mpi教程 —— A Python Introduction to Parallel Programming with MPI 1.0.2 documentation
如题: 无意中发现了一个Python下的mpi教程<A Python Introduction to Parallel Programming with MPI 1.0.2 documentat ...
- VSCode配置git
1.背景 vscode中基础git; 前提:本地已经安装好了git 有这样的菜单,并且可以正常上传下载代码 2.步骤 步骤一:找的git的安装路径: D:\Program Files\Git 步骤二: ...
- 《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)
1.简介 在我们日常工作中进行UI自动化测试时,保证测试的稳定性至关重要.其中一个关键方面是正确地定位和操作网页中的元素.在网页中,元素可能处于不同的状态,有些可能在页面加载完成之前不在DOM中,需要 ...
- 看了这几个C语言例子,你一定和我一样连说5个卧槽,声音一次比一次大
曾经我一直以为自己C语言学的还挺好的,直到看到这几个例子. 例1 首先来看一下,大师是如何求圆周率的,一口君实在词穷,first卧槽. #include <stdio.h> long a= ...
- 【问答23】Linux移植:如何制作rootfs?
粉丝问题 如何制作rootfs? 安排! 想直奔主题的,直接跳到第四章. 一.分析 1. 文件系统简介 理论上说一个嵌入式设备如果内核能够运行起来,且不需要运行用户进程的话,是不需要文件系统的,文件系 ...
- Web端OA办公后台管理系统(使用AxureRP设计)思路与效果分享
本期带来一套OA办公后台管理系统(办公一体化)的设计分享.本次的作品设计,使用AxureRP软件. 一套实用的后台OA系统,一定是功能强大.能覆盖常用功能的.本次分享的系统,包含组织.员工管理.考勤. ...
- kubeadm升级k8s之1.23.17->1.24.17
查看当前版本 [root@k8s-master31 ~]# kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EX ...
- esp32挂esphome
esp32挂esphome 使用docker创建容器 docker run -d --name='esphome' \ --restart=always \ -p 6052:6052 \ -e TZ= ...