POJ 1487 高斯消元 模擬 坑爹題 好題

2021-06-14 17:52:49 字數 2016 閱讀 7164

wa了整天,變換著姿勢終於找到錯了。。

1.模擬過程,字串的處理,字串裡包含數字,()括號,字母,數字注意是負數,會坑你爹的

一開始注意到了負數,以為處理了,但是沒處理好,沒有在讀取整個負數後才乘以-1,所以錯了

2.高斯消元過程,出現undefined是因為出現了 a=a 這樣的式子,也就是有自由變數

注意乙個變數a的undefined可能導致另一變數b的undefined,只要b的式子包含a,這樣令我wa不止,

我注意到了,以為處理了,,可是又沒處理好。。

可以如下,正常消元過程後,回代的時候判斷代入的是不是undefined,和對應的check

void gauss()

if(fabs(a[i][i])=i;--j)

a[k][j]-=a[k][i]/a[i][i]*a[i][j];

}for(int i=n-1;i>=0;--i) // 包含有undefined的字母的式子也會變成undefined

else if(fabs(a[i][k])>eps)

a[i][n]/=a[i][i];

}}inline bool check(int x)

也可以如下,每次對當前行之外的全部式子消元,如果都有解的話,最終得到的矩陣是除了對角線,其他entry都是0

其他entry有不是0的,或者,a[i][i]的位置是0 ,說明undefined

void gauss()

if(fabs(a[row][col])eps)

return false;

}return (fabs(a[x][x])>eps);

}

最終**:c++能過,g++wa。不解。

#include #include #include #include #include #include #include #include #include #include using namespace std;

#define eps 1e-9

double a[30][30];

char s[10000];

int n;

// - num ( ) char

void cal(int pos,int st,int ed,int now) // s[st]=='('

else

else if(s[i]==')')

block--;

else if(block==1 && s[i]>='a' && s[i]<='z')

p++;}}

prenum=false;block=0;

now*=p;

int num,nest_st,nest_ed,mark;

for(int i=st;i<=ed;++i)

else

num=num*10+s[i]-'0';

}else

if(s[i]=='(')

else if(s[i]==')')

}else if(block==1 && s[i]>='a' && s[i]<='z')}}

}void gauss()

if(fabs(a[i][i])=i;--j)

a[k][j]-=a[k][i]/a[i][i]*a[i][j];

}for(int i=n-1;i>=0;--i) // 包含有undefined的字母的式子也會變成undefined

else if(fabs(a[i][k])>eps)

a[i][n]/=a[i][i];

}}inline bool check(int x)

int main ()

{ int ncase=1;

while(scanf("%d",&n)!=eof)

{if(n==0 ) break;

memset(a,0,sizeof(a));

char ch;

int st,ed,block;

for(int i=0;i

poj 1222 (高斯消元)

1 高斯消元法求解 適用於01方矩陣的問題,不適用在解線性方程組中 首先介紹一下怎樣用高斯消元法解題!這個遊戲的名字叫做lights out。乙個板子上面有mxn個按鈕,按鈕也是燈。每次按下乙個按鈕,這個按鈕和它的上下左右相鄰按鈕將同時切換各自的亮滅狀態。給你乙個初始狀態,請給出一種方法,按某些按鈕...

poj 1830 高斯消元

include include include include include include include include include includeusing namespace std typedef vectorvi typedef vectorvvi typedef vectorvv...

poj 1222 高斯消元

第一次寫高斯消元 題意很簡單 就是是全部燈變暗,一盞燈開關會使周圍的燈變化,初始狀態給了。每盞燈就是乙個x a就是相關關係 就是求 ax b 的解 自己寫的模版有點搓,可以去別的文章去看看 優美點的 include include include include include using name...