高斯消元是一个线代的问题,将增广矩阵化成阶梯型矩阵求解
高斯消元入门,总共有4种题,
其一:异或方程组,这中间最重要的是枚举自由元!也就是一个简单的搜索。
其二:”同余方程组“这个同余是说,所有的方程同余。
其三:高斯消元解实数问题,这个应该是最经典的高消了吧。
其四:高消解决整数解的问题。
高斯消元易错点:(1)构造系数时,最好先清零在用a[i][j]+=val,不要直接用a[i][j]=val,容易出错,如下面hdu 4326题。
(2)用分数类做时,最好保证分母为正,不已出错。
1.解决实数问题:
(1)http://acm.hdu.edu.cn/showproblem.php?pid=3359
//这题是有唯一解
实现代码:http://my.csdn.net/my/code/detail/13312
(2)http://acm.hdu.edu.cn/showproblem.php?pid=4326
题意:给定n个人比赛,编号1到n。每轮队首四个人比赛,输的3人按比赛前相对位置放在队首,赢的放在队首。每轮每个人胜利的概率一样。问第k个人连续赢m场比赛的概率。
解题思路:对于这题,我们首先确立一个这样的模型: x1先赢了i局,正在于x2,x3,x4赌斗,后面依次有x5,x6,……,xn等待。用P[i][j]表示x1先赢了i局的情况下,当前的xj获胜的概率。
不难得到以下的一些式子:
注意构造系数的时候用+=,不要直接用=赋值,因为下面的等式p[i][j]可能用p[i][j]转移过来。例如只有4个人,p[1][4]=1/4*p[2][4]+2/4*p[1][4]+1/4*p[1][1] ,这里p[1][4]要由p[1][4]转移过来,那么如果直接赋值就先赋值-1在赋值2/4这样就错了。
实现代码:http://my.csdn.net/my/code/detail/13314