题目链接:
Gauss消元真正意义上的第一道(以前做过一道裸的)。。。
其实这种题目暴力搜索完全可以解决。。。
我们先建立一个矩阵,A[i][j]表示第 i 个开关是否受第 j 个开关的影响,S[i]表示第 i 个开关的初始状态,D[i]表示第 i 个开关的最终状态,X[i]表示操作,那么S*A*X=D,令B=S*D,则有A*X=B:
A11*X1^A12*X2^......^A1n*Xn=B1
A21*X1^A22*X2^......^A2n*Xn=B2
......
An1*X1^An2*X2^......^Ann*Xn=Bn
即求线性方程组的解的个数,那个利用Gauss消元,看最后上三角矩阵中是否存在0 0 0 = 1的情况,则无解,否则求出自由变元的个数cnt,则方法数解为2^cnt。
PS:彪哥要我出一道Gauss题目的数据,发现自己高斯消元的题目还没怎么接触过,于是就练练Gauss消元的专题了。
1 //STATUS:C++_AC_16MS_148KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include