首页 > 其他分享 >线性丢番图方程

线性丢番图方程

时间:2023-07-02 20:37:22浏览次数:34  
标签:方程 gcd int ll 丢番 long 线性

 

 

方程ax+by=c被称为二元线性丢番图方程

二元线性丢番图方程例题:洛谷P1516

使用拓展欧几里得算法求解x

注意:本题的拓展欧几里得算法函数需要是正数

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll gcd(ll a,ll b,ll &x,ll &y){
	if(b==0){
		x=1;y=0;
		return a;
	}
	ll d=gcd(b,a%b,y,x);
	y-=a/b*x;
	return d;
}
ll n,m,x,y,L;
int main(){
	cin>>x>>y>>m>>n>>L;
	ll a=n-m,c=x-y;
	if(a<0){
		a=-a;
		c=-c;
	}
	ll d=gcd(a,L,x,y);
	if(c%d!=0)cout<<"Impossible";
	else cout<<((x*(c/d))%(L/d)+(L/d))%(L/d);
	return 0;
}

  

a1x1+a2x2+......+anxn=c被称为多元丢番图方程

多元丢番图方程例题:最大体积

先用裴蜀定理判定是否有解,再用完全背包计算可能的体积,最后从最大值倒序遍历求解答案

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5+39+7;
int n,a[N];bool flag[N];
int gcd(int a,int b){
	if(!b)return a;
	return gcd(b,a%b);
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	int Gcd=a[1];
	for(int i=2;i<=n;i++)Gcd=gcd(Gcd,a[i]);
	if(Gcd==1){
		flag[0]=1;
		for(int i=1;i<=n;i++){
			for(int j=a[i];j<=N;j++){
				if(flag[j-a[i]])flag[j]=1;
			}
		}
		for(int i=N;i>=0;i--){
			if(!flag[i]){
				cout<<i;
				break;
			}
		}
	}else cout<<0;
	return 0;
}

  

标签:方程,gcd,int,ll,丢番,long,线性
From: https://www.cnblogs.com/zhanghx-blogs/p/17521316.html

相关文章

  • 线性代数本质理解回顾(四) 逆矩阵、列空间与零空间
    此视频要通过线性变换来了解逆矩阵、列空间、秩和零空间的概念。线性代数一个作用是解方程组 这是线性方程组+ 事实上,你可以将所有的方程合并为一个向量方程。这个方程有一个包含所有常数系数的矩阵。  这不仅仅是将方程组写进一行的书写技巧。还阐释了这个问题中优美......
  • [NOIP2001 提高组] 一元三次方程求解
    [NOIP2001提高组]一元三次方程求解题目描述有形如:\(ax^3+bx^2+cx+d=0\)这样的一个一元三次方程。给出该方程中各项的系数(\(a,b,c,d\)均为实数),并约定该方程存在三个不同实根(根的范围在\(-100\)至\(100\)之间),且根与根之差的绝对值\(\ge1\)。要求由小到大依......
  • 线性代数理解回顾(二)
    矩阵乘法与线性变换复合内容来源:【熟肉】线性代数的本质-04-矩阵乘法与线性变换复合_哔哩哔哩_bilibili 很多时候你想描述这样一种作用:一个变换之后再进行另外一个变换,比如说先将整个平面逆时针90度后,再进行一次剪切会发生什么,  从头到位的总体作用是另一个线性变换。......
  • 线性代数本质理解回顾(三) 行列式
    内容来源:线性代数的本质-05-行列式_哔哩哔哩_bilibili现在想象一些线性变换,你可能注意到其中有的空间向外拉伸,有的则向内挤压。  有件事对理解这些线性变换很有用。那就是测量变换究竟对空间有多少拉伸或挤压。更具体一点,就是测量一个给定区域面积增大或减小的比例。......
  • 线性代数理解回顾(一)
    视频来源:线性代数的本质-02-线性组合、张成的空间与基_哔哩哔哩_bilibili 线性相关:对增加张成空间无贡献线性无关:对增加张成空间有贡献向量空间的一个基是张成该空间的一个线性无关的向量集。(只要能遍历空间就可以作为这个空间的基)  直观的说如果一个变换具有以下......
  • 非齐次微分方程不等式求解(13)
    求解工具:高数求解微分方程知识求解微分方程不等式:......
  • 浅谈线性规划
    以前学了很多次都没学明白,今天再来看看。本文不会涉及单纯形法的知识点讲解,大部分题目侧重于线性规划对偶。同样本文不会涉及相关知识点的证明,或是线性规划解的整数性说明,毕竟这只是一个总结性的文章。拉格朗日对偶部分没学会,暂鸽。线性规划标准型对于任意线性规划,容易通过......
  • 线性代数亡羊补牢
    零基础,学线代,绩点过3不是梦!!原理逆序数:逆序对数量行列式符号:分别求行、列的逆序数,和偶正奇负行列式变换:对应成比例,值为0,交换行/列添负号上三角:\[\left|\begin{array}{c}a_{11}&a_{12}&a_{13}\\0&a_{22}&a_{23}\\0&0&a_{33}\\\end{array}\right|=a_{11}a_{22}a_{33}......
  • 1.线性代数基础
    目录一、向量向量的加法VectorAddition向量乘法VectorMultiplication1.点乘dotproduct点乘属性笛卡尔座标系下的点乘图形学中的点乘2.叉乘Crossproduct叉乘属性笛卡尔座标系下的叉乘图形学中的叉乘二、矩阵矩阵乘法例题矩阵乘法属性矩阵转置向量的点乘叉乘用矩阵来表示一、......
  • 2.Transformation线性变换
    WHY我们通过摄像机对拍摄的画面进行缩放、旋转、偏移,来将三维模型映射到二维的屏幕画面上二维线性变换\[x^,=a~x+b~y\\y^,=c~x+d~y\\\begin{bmatrix}x^,\\y^,\\\end{bmatrix}=\begin{bmatrix}a&b\\c&d\\\end{bmatrix}\cdot\begin{bmatrix}x\\y\\\end{bmatrix}\\x^......