1. 程式人生 > >模線性方程組(poj2115)

模線性方程組(poj2115)

#include<cstdio>
#define  ll  long long
ll d;
ll x,y;
void exgcd(ll a,ll b){
	if(b==0){
		d=a;
		x=1;
		y=0;
		return ;
	}
	exgcd(b,a%b);
	ll t=x;
	 x=y;
	 y=t-a/b*y;
}
void solution(ll  a,ll  b,ll n){
	if(b==0){printf("0\n");return;}
	exgcd(a,n);
	if(b%d){printf("FOREVER\n");return;}
	ll f=n/d;
	x=x*(b/d);
	ll  X=(x%f+f)%f;
	printf("%lld\n",X);
	
}
int main(){
	ll  A,B,C,k;
	while(scanf("%llu%llu%llu%llu",&A,&B,&C,&k),(A+B+C+k)){
		solution(C,B-A,(ll)1<<k);
	}
	return 0;
} 

相關推薦

線性方程組poj2115

#include<cstdio> #define ll long long ll d; ll x,y; void exgcd(ll a,ll b){ if(b==0){ d=a; x=1; y=0; return ; } exgcd(b,a%b); ll t=x;

【模板】合併線性方程組POJ2891

Description   給定\(n\)組同餘關係,求解最小的非負整數\(x\),滿足\(x \mod a_i = r_i\) Input   第一行一個整數\(n\)   接下來\(n\)行,每行兩個整數,分別表示\(a_i\) 和 \(r_i\) Output   一個正整數\(x\)即最小正

POJ 1061 青蛙的約會拓展歐幾裏得算法求解線性方程組詳解

scrip 坐標 出發點 開心 以及 NPU tdi 青蛙的約會 方程組 題目鏈接: BZOJ: https://www.lydsy.com/JudgeOnline/problem.php?id=1477 POJ: https://cn.vjudge.net/problem

如何使用拓展歐幾裏得算法求解線性方程組詳解

得出 bsp 次方 及其 根據 約數 www 求解 回退   式子a≡b(mod n)稱為a和b關於模n同余,它的充要條件是a-b是n的整數倍,即a-b=zn(其中z取整數)。 而模線性方程組ax≡b(mod n)可以寫成ax-b=zn(其中z取整數),移項可得 ax-zn

線性方程組中國剩餘定理

《孫子算經》裡有這樣一個問題,“今有物不知其數,三三數之剩二(除以3餘2),五五數之剩三(除以5餘3),七七數之剩二(除以7餘2),問物幾何?”,解決這個問題的方法稱為中國剩餘定理,也叫孫子定理。中國古代還有一個叫做“韓信點兵”的問題,和這個問題本質是一樣的。 很明顯這個物

採用GAUSS列主消元法求解線性方程組MATLAB

%%求解任意線性方程組的解 clc; clear all; format long e disp('線性方程組求解,請輸入引數'); n=input('維數n='); A=input('矩陣A='); b=input('右端項b='); eps=input('控制精度eps='); b=b';   %%變為列

中國剩餘定理求解同餘線性方程組數互素和非互素的情況

中國剩餘定理      中國剩餘定理是中國古代求解一次同餘方程組的方法,是數論中的一個重要定理。      設m1,m2,m3,...,mk是兩兩互素的正整數,即gcd(mi,mj)=1,i!=j,i,j=1,2,3,...,k. 則同餘方程組: x = a1

HDU 1573 X問題 中國剩餘定理 線性方程組

思路: 方法1: 問題可以轉化為求模線性方程組。 設要求得的滿足方程組的最小正整數為n; n=b1(moda1) n=b2(moda2) 可以得到: n=b1+x∗a1=b2+y∗a

線性代數-線性方程組的解

最近忙於演算法和戰神4,導致線性代數的優先順序往後降了降,現在半個學期多過去了看了一半,立個flag學期結束錢看完,不過估計是做不到了,但是至少在寒假要開始概率論了吧。 1. 證明如下: 可得求解線性方程組的步驟如下: 以下為解齊次線性方程和非齊次線性方程的過程

高斯消元法求解線性方程組分數精確表示

原理可以參考 https://zh.wikipedia.org/wiki/%E9%AB%98%E6%96%AF%E6%B6%88%E5%8E%BB%E6%B3%95 這裡給出使用分數表示計算過程的高斯消元法寫法 github地址:https://github.com/YIWANFEN

求解線性方程組SVD,QR,Gauss,LU

曲線擬合過程中,需要求解線性方程組,下面談談線性方程組的求解方法: 1)svd求解 對於齊次線性方程 A*X =0; 當A的行數大於列數時,就需要求解最小二乘解,在||X||=1的約束下,其最小二乘解為矩陣A'A最小特徵值所對應的特徵向量。求解方法有兩種(matlab):

雅可比迭代法解線性方程組matlab程式

A=[4,3,0;3,4,-1;0,-1,4]; b=[24,30,-24]; x=jokebi(A,b); function  x2=jokebi(B,c) D=diag(diag(B)); U=D-triu(B); L=D-(triu(B))'; x1=(rand(1,

列主元消去法求解線性方程組C++實現

接著上次的繼續,上次使用了高斯消元法http://blog.csdn.net/qq_26025363/article/details/53027926,但是,在消元過程中,無法使主元素a(ii)≠0,但是很小時,用其做除數,會導致其他元素數量級的嚴重增長,舍入誤

共軛梯度法解線性方程組Matlab程式

%-------共軛梯度法解線性方程組----------- %---Conjugate Gradient method------- %參考教材《數值分析》李乃成&梅立泉,科學出版社2011 clear;clc; % A=[10,-1,-2;-1,10,-2;-1

SVD解線性方程組非齊次

    對於任一給定的矩陣A(m * n),都存在這樣的分解:        其中, U是一個m * m的酉矩陣,S是一個m * n的矩陣,除了主對角線上的元素以外全為0,主對角線上的每個元素都稱為奇異值, V是一個n * n的酉矩陣。求解解線性方程組    Ax=b   

迭代法求解線性方程組C++實現

本系列是數值分析相關演算法的文章,這次用迭代法求解線性方程組,不同於上次用高斯消元法之類的求解。迭代法對於稀疏矩陣方程組的運算,會大大提高。而如果用高斯相關的演算法求解,會浪費大量資源計算無用的東西,所以有必要研究此演算法。 本文章主要使用了3個演算法,分別是

塊分析

1.7 space 後置 狀態 你在 處理 節點 要點 不同 做設計很重要一點就是要考慮匹配設計,就是你的設計一定要有一個意識,就是要回歸原始狀態;也可以稱之為閉環誰急,而且是小地方的閉環,以及異常情況的閉環;比如傳輸你在一個地方加密,解密一般都會考慮到;但是如果是壓縮,邏

數據結構-線性2

順序 序表 表示 元素 額外 alt 最大 spa 位置 線性表定義: 線性表是最基本、最簡單、也是最經常使用的一種數據結構。線性表中數據元素之間的關系是一對一的關系,即除了第一個和最後一個數據元素之外,其他數據元素都是首尾相接的。線性表的邏輯結構簡單,便於實現

Java知識點塊化1—— 面向對象

只需要 知識 pad 產生 自動裝箱 pri 生存 new 使用 前言   這是我整理的Java筆記,分模塊會陸續上齊,具體鏈接如下:   1.面向對象:http://www.cnblogs.com/Gabby/p/6857406.html   2.集合:   3.IO:

塊使用

語句 自己 所有 一個 組織 另一個 腳本文件 路徑 需要 一、模塊簡介 (1) 一個模塊就相當於一個小功能,一個 python 腳本可以單獨運行,也可以導入到另一個腳本中運行(2) 當腳本被導入運行時,我們將其稱為模塊,所有的 .py 文件都可以作為一個模塊導入(3)