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:
/*view 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}}
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個相同的開關,每個開關都與某些開關有著聯絡,每當你開啟或者關閉某個開關的時候,其他的與此開關相關聯的開關也會相應...