題目
實際本題還有更好的dp做法,之後再學習一下。不過正好學了高斯消元,就練習一下。
設f [i
]f[i]
f[i]
為已匹配了前i為字元,得到期望字串還需要補上字串的長度的期望值。顯然,f[m
]=
0.f[m]=0.
f[m]=0.f[
i]=∑
f[j]
/n+1
,0
=<
i<
mf[i]=\sum/n+1,0=f[
i]=∑
f[j]
/n+1
,0=<
i<
m,j是列舉加上的字元後轉移到的狀態,這個狀態值可以由字首函式推得。根據全期望公式,就可以得到該公式。這樣就可以得到m個方程,高斯公式求解即可。用double貌似精度不夠,要用long long處理。不過應該要處理不能整除的情況,但假如每次不選主元行可以直接過,不知道為啥。
#include
using
namespace std;
const
int maxn =10+
5;typedef
long
long matrix[maxn]
[maxn]
;matrix a;
char s[maxn]
;int n,m,p[maxn]
;void
gauss
(matrix a,
int n)
if (r != i)
*/for(j=n+
1;j>=i;j--)}
}for
(i = n; i>=
1; i--)if
(a[i]
[i])
a[i]
[n+1]/
= a[i]
[i];}}
void
getp
(char
*s)}
void
build
(char
*s)}
}int
main()
return0;
}
高斯消元 浮點高斯消元
浮點數高斯消元 問題描述 給出乙個線性方程組,有n個方程組,m個未知數。解這個線性方程組。輸入格式 第1行 2個整數n和m,n,m 400,且n不一定等於m 接下來n行,每行m 1個整數,表示乙個方程的m個未知數的係數和常數 輸出格式 如果無解,輸出 no solution 如果有唯一解,輸出m行,...
矩陣消元 高斯消元
安利一波高斯消元的部落格,內容很詳細。看完這個相信你已經理解了大概,高斯消元求線性方程組,在學習線性代數 大學課程 的時候我們都接觸過。原理是先把執行緒組轉換成矩陣,然後把它等價變換成上三角矩陣,這樣從下到上依次可以求出解集。高斯消元模板 模板題 include define n 205 using...
矩陣乘 高斯消元專題小結 高斯消元
i p其它題太水了就不寫了,這裡說一下o和p。我太懶不想寫 op這兩個題是高斯消元求期望的題。對於p題,求從 點到 點的步數期望,先從 點bfs一遍找到所有可以到達的點,對於可達點每個點是乙個變數。因為終點有任意多而起點只有乙個,這裡可以反過來求從任意乙個終點走到起點的期望。於是對於每乙個終點的期望...