日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高斯消元异或模板

發布時間:2024/8/1 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高斯消元异或模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
int equ, var;///equ個方程 var個變量 int a[maxn][maxn];///增廣矩陣 int x[maxn];///解集 int x_i[maxn]; bool free_x[maxn];///判斷是不是自由變元 int free_num;///自由變元的個數 int Gauss() {int Max_r;///當前列絕對值最大的存在的行///col:處理當前的列int row,col = 0;int free_x_num;int free_index;free_num = 0;for(int i=0; i<=var; i++){x[i] = 0;free_x[i] = 1;}for(row=0; row<equ&&col<var; row++,col++){Max_r = row;for(int i=row+1; i<equ; i++)if(abs(a[i][col]) > abs(a[Max_r][col]))Max_r = i;if(a[Max_r][col] == 0){free_x[col] = 1;x_i[free_num++] = col;row--;continue;}if(Max_r != row)for(int i=col; i<var+1; i++)swap(a[row][i], a[Max_r][i]);///消元for(int i=row+1; i<equ; i++)if(a[i][col])for(int j=col; j<var+1; j++)a[i][j] ^= a[row][j];}for(int i=row; i<equ; i++)if(a[i][col])return -1;///無解///保證對角線主元非 0for(int i=0; i<equ; i++){if(!a[i][i]){int j;for(j=i+1; j<var; j++)if(a[i][j])break;if(j == var)break;for(int k=0; k<equ; k++)swap(a[k][i], a[k][j]);}}if(row < var)return var - row;///自由變元的個數///回代,得到解集for(int i=var-1; i>=0; i--){x[i] = a[i][var];for(int j=i+1; j<var; j++)x[i] ^= (a[i][j] && x[j]);}return 0;///唯一解 }

總結

以上是生活随笔為你收集整理的高斯消元异或模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。