Codeforces Beta Round 7 C. Line 题解 数论 扩展欧几里得

server/2024/11/14 3:02:23/

Line

题目描述

A line on the plane is described by an equation A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0 . You are to find any point on this line, whose coordinates are integer numbers from − 5 ⋅ 1 0 18 -5·10^{18} 51018 to 5 ⋅ 1 0 18 5·10^{18} 51018 inclusive, or to find out that such points do not exist.

输入格式

The first line contains three integers A A A , B B B and C C C ( − 2 ⋅ 1 0 9 < = A , B , C < = 2 ⋅ 1 0 9 -2·10^{9}<=A,B,C<=2·10^{9} 2109<=A,B,C<=2109 ) — corresponding coefficients of the line equation. It is guaranteed that A 2 + B 2 > 0 A^{2}+B^{2}>0 A2+B2>0 .

输出格式

If the required point exists, output its coordinates, otherwise output -1.

题面翻译

一条直线:Ax+By+C=0(A,B不同时为0),找到任意一个点(在-5e18~5e18之间),让它的横纵坐标均为整数,或者确定没有这样的点。

样例 #1

样例输入 #1

2 5 3

样例输出 #1

6 -3

原题

Codeforces——传送门
洛谷——传送门

思路

将求 A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0 直线上的整数点转化为求 A x + B y = − C Ax+By=-C Ax+By=C 的一个整数解。然后利用扩展欧几里得算法求其中一个解即可。

代码

#include <bits/stdc++.h>
using namespace std;
using i64 = long long;i64 a, b, c, x, y;
// exgcd求出ax+by=gcd(a,b)的解
i64 exgcd(i64 a, i64 b, i64 &x, i64 &y)
{if (b == 0){x = 1, y = 0;return a;}i64 d = exgcd(b, a % b, y, x);y -= (a / b * x);return d;
}
// 求解不定方程ax+by=c
int func()
{i64 d = exgcd(a, b, x, y);// 不符合裴蜀定理,无整数解,返回-1if (c % d)return -1;else{// 有整数解,返回1x = x * c / d;y = y * c / d;return 1;}
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cin >> a >> b >> c;c = -c; // c平移后变为-c即ax+by+c=0到ax+by=-c的转化if (func() == -1)cout << -1;elsecout << x << ' ' << y;return 0;
}

http://www.ppmy.cn/server/53651.html

相关文章

EXCEL快速填充空白内容

** EXCEL快速填充空白内容 ** 1.全选所有需要填充的内容&#xff0c;按住电脑的F5或者CTRLG点击定位 2.可以看到空白处被自动选定&#xff0c;之后按电脑和⬆&#xff0c;最后CTRLenter 可以看到空白处已经被填充。

zdppy_api+vue3+antd实现批量上传文件的功能

前端代码版本1 在这个版本中&#xff0c;能够实现文件上传以后&#xff0c;通过文件列表的链接点击以后进行回显。 但是有个问题&#xff0c;那就是文件的状态一直是加载中。 <template><a-uploadaction"https://www.mocky.io/v2/5cc8019d300000980a055e76&qu…

MFC扩展库BCGControlBar Pro v35.0新版亮点 - 工具栏、菜单全新升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v35.0已全新发布了&#xff0c;这个版本改进类Visual Studio 2022的视觉主题、增强对多个…

笔记本电脑屏幕模糊?6招恢复屏幕清晰!

在数字化时代的浪潮中&#xff0c;笔记本电脑已成为我们生活、学习和工作中不可或缺的一部分。然而&#xff0c;当那曾经清晰明亮的屏幕逐渐变得模糊不清时&#xff0c;无疑给我们的使用体验蒙上了一层阴影。屏幕模糊不仅影响视觉舒适度&#xff0c;更可能对我们的工作效率和眼…

魔行观察-烤匠麻辣烤鱼-开关店监测-时间段:2011年1月 至 2024年6月

今日监测对象&#xff1a;烤匠麻辣烤鱼&#xff0c;监测时间段&#xff1a;2011年1月 至 2024年6月 本文用到数据源获取地址 魔行观察http://www.wmomo.com/ 品牌介绍&#xff1a; 2013年&#xff0c;第一家烤匠在成都蓝色加勒比广场开业&#xff0c;随后几年成都国金中心店…

神经网络实战2-损失函数和反向传播

其实就是通过求偏导的方式&#xff0c;求出各个权重大小 loss函数是找最小值的&#xff0c;要求导&#xff0c;在计算机里面计算导数是倒着来的&#xff0c;所以叫反向传播。 import torch from torch.nn import L1Lossinputstorch.tensor([1,2,3],dtypetorch.float32) targe…

公爹公婆出首付买房,离婚的儿媳妇能分吗?

小两口结婚后为了更好地生活打算购房&#xff0c;男方父母帮助支付首付款&#xff0c;后房屋登记在夫妻名下。后两人因感情不和打算离婚&#xff0c;女方要求按照房屋的现行价值进行分割&#xff0c;能否得到支持&#xff1f;近日&#xff0c;江苏省南通市中级人民法院对这起离…

Python逻辑控制语句 之 判断语句--if语句的基本结构

1.程序执行的三大流程 顺序 分支&#xff08;判断&#xff09; 循环 2.if 语句的介绍 单独的 if 语句,就是 “如果 条件成⽴,做什么事” 3.if 语句的语法 if 判断条件: 判断条件成立&#xff0c;执行的代码…