數學 高斯消元 POJ 1830

2022-02-07 04:38:13 字數 1559 閱讀 9054

mean:

analyse:

增廣矩陣:con[i][j]:若操作j,i的狀態改變則con[i][j]=1,否則con[i][j]=0。

最後的增廣矩陣應該是n*(n+1),最後一列:對比開光的始末狀態,若相同則為0,若不同則為1;

最後的解共有三種:

1.無解,既出現了一行中前面n個數為0,第n+1的值非0;

2.沒有第1種情況出現,存在x行數值全為0,則解的個數為2^x;

3,沒有1,2 兩種情況出現,唯一解,輸出1。

time complexity: o(n)

source code:

/*

* this code is made by crazyacking

* verdict: accepted

* submission date: 2015-06-17-22.36

* time: 0ms

* memory: 137kb

*/#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define ull unsigned long long

using

namespace

std;

const

int p=30

;int

con[p][p];

intn;

intbeg[p],fin[p];

intfunction()

break

; }}}

if(con[row][col]==0

)

for(k=1; k<=n; k++) }}

}for(k=row; k1; k++)

if(con[k][n+1]!=0)

if(row==n+1)

else

}int

main()

for(i=1; i<=n; i++)

scanf(

"%d%d

",&x,&y);

memset(con,

0,sizeof

(con));

while(x!=0&&y!=0

)

for(i=1; i<=n; i++)

for(i=1; i<=n; i++)

else

}int pp =function();

if(pp)

else}}

view code

poj 1830 高斯消元

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

POJ 1830 高斯消元

中文題意,我就不多說什麼了,學習高斯消元時看到的這道題,其實一開始我還沒看懂這題跟高斯消元有什麼關係,emmm都怪我線代學的太差了.這道題中,我們不妨設a i j 1表示第j燈可以影響到第i燈,若為0則表示無影響,顯然a i i 1 又設x i 代表第i個開關的操作狀態 1位操作,0為不操作 s i...

POJ 1830 開關問題 高斯消元

開關問題 time limit 1000ms memory limit 30000k total submissions 3390 accepted 1143 description 有n個相同的開關,每個開關都與某些開關有著聯絡,每當你開啟或者關閉某個開關的時候,其他的與此開關相關聯的開關也會相應...