系列 高斯消元

2022-06-01 02:21:08 字數 2660 閱讀 3909

bzoj 1013

題目大意:

給出$n$維球體上的$n+1$個點,求球心

思路:設球心座標$(x_1,x_2,x_3 \cdots x_n)$

則對於任意兩個點$(a_1,a_2 \cdots a_n),(b_1,b_2 \cdots b_n)$,得到$(x_1-a_1)^2+(x_2-a_2)^2 \cdots (x_n-a_n)^2=(x_1-b_1)^2+(x_2-b_2)^2 \cdots (x+n-b_n)^2$

移項後得到$2(a_1-b_1)x_1+2(a_2-b_2)x_2 \cdots 2(a_n-b_n)x_n = ^2-^2+^2-^2 \cdots ^2-^2$

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include

11#define ll long long

12#define db double

13#define inf 2139062143

14#define maxn 200100

15#define rep(i,s,t) for(register int i=(s),i##__end=(t);i<=i##__end;++i)

16#define dwn(i,s,t) for(register int i=(s),i##__end=(t);i>=i##__end;--i)

17#define ren for(register int i=fst[x];i;i=nxt[i])

18#define fill(x,t) memset(x,t,sizeof(x))

19#define pls(a,b) (a+b)%mod

20#define mns(a,b) (a-b+mod)%mod

21#define mul(a,b) (1ll*(a)*(b))%mod

22using

namespace

std;

23 inline int

read()

2427

while(isdigit(ch))

28return x*f;29}

30int n;db a[15][15],g[15][15

];31 db sqr(db x)

32void

gauss()

3340 dwn(i,n-1,0) 41}

42int

main()

43

view code

bzoj 3270

題目大意:

一開始兩個人在$s,t$兩個點,當乙個人在$i$點時,有$p_i$的概率不動,有$1-p_i$的概率向相鄰的點等概率移動

如果兩個人在乙個點相遇就停止,求他們在每個點相遇的概率

思路:設$f(i,j)$表示兩個人在$i,j$的概率,設$x,y$分別為$i,j$的前驅

很容易得到方程$f(i,j)=\sum (i==x?p_x:\frac)*(j==y?p_y:\frac)$

對於$f(s,t)$概率為$1$,其餘為$0$,一共$n^2$個方程消元即可

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include

11#define ll long long

12#define db double

13#define inf 2139062143

14#define maxn 200100

15#define rep(i,s,t) for(register int i=(s),i##__end=(t);i<=i##__end;++i)

16#define dwn(i,s,t) for(register int i=(s),i##__end=(t);i>=i##__end;--i)

17#define ren for(register int i=fst[x];i;i=nxt[i])

18#define fill(x,t) memset(x,t,sizeof(x))

19#define pls(a,b) (a+b)%mod

20#define mns(a,b) (a-b+mod)%mod

21#define mul(a,b) (1ll*(a)*(b))%mod

22using

namespace

std;

23 inline int

read()

2427

while(isdigit(ch))

28return x*f;29}

30int n,m,ss,tt,mp[35][35],d[35];db a[410][410],p[35

];31

void gauss(int

n)32

39 dwn(i,n-1,0) 40}

41 inline int t(int x,int y)

42int

main()

4353 gauss(n*n);rep(i,1,n) printf("

%.6lf

",a[t(i,i)][n*n]);

54 }

view code

高斯消元 小白系列

在oi的海洋中,數學作為萬科之基礎,當然佔了很大的比重。讓我們來一起感受oi和數學之間的樂趣吧。高斯消元聽上去很高大上,其實只是解多元一次方程組的最常用方法。而這種方法就是我們小學學過的加減消元。首先我們來看乙個三元一次方程組 x 2y 3z 6 4x 5y 6z 12 7x 8y 10z 21 資...

高斯消元 浮點高斯消元

浮點數高斯消元 問題描述 給出乙個線性方程組,有n個方程組,m個未知數。解這個線性方程組。輸入格式 第1行 2個整數n和m,n,m 400,且n不一定等於m 接下來n行,每行m 1個整數,表示乙個方程的m個未知數的係數和常數 輸出格式 如果無解,輸出 no solution 如果有唯一解,輸出m行,...

矩陣消元 高斯消元

安利一波高斯消元的部落格,內容很詳細。看完這個相信你已經理解了大概,高斯消元求線性方程組,在學習線性代數 大學課程 的時候我們都接觸過。原理是先把執行緒組轉換成矩陣,然後把它等價變換成上三角矩陣,這樣從下到上依次可以求出解集。高斯消元模板 模板題 include define n 205 using...