hiho 1196 高斯消元 二

2022-02-19 11:29:35 字數 2645 閱讀 5363

時間限制:10000ms

單點時限:1000ms

記憶體限制:256mb

描述在上一回中,小hi和小ho趁著便利店打折,買了一大堆零食。當他們結賬後,看到便利店門口還有其他的活動。

店主:買了東西還可以參加遊戲活動哦,如果能夠完成遊戲還有額外的獎品。

小hi和小ho趕緊湊了過去。

店主放了一塊遊戲板在店門口,有5行6列格仔。左上角為座標(1,1)。一部分格仔是亮著的,另一部分是暗著的。

當按下某乙個格仔時,它和上下左右4個格仔的狀態就會改變。原來亮著的格仔變成暗的,原來暗的格仔會變亮。比如下圖中按下標記有紅叉的格仔後,綠色虛線區域內的格仔狀態都會改變:

店主給出初始的狀態,參加遊戲的人員需要通過按下某些格仔,讓遊戲板上所有的燈都亮起來就可以贏得獎品。

小ho:這不就是開關燈問題麼,看我來解決它!

本題改編自acmicpc greater new york 2002 extended lights out

輸入第1..5行:1個長度為6的字串,表示該行的格仔狀態,1表示該格仔是亮著的,0表示該格仔是暗的。

保證一定存在解,且一定存在暗著的格仔。

輸出需要按下的格仔數量k,表示按下這k個位置後就可以將整個遊戲板所有的格仔都點亮。

接下來k行,每行乙個座標(x,y),表示需要按下格仔(x,y)。x座標較小的先輸出,若x相同,則先輸出y座標較小的。

樣例輸入

001111

011111

111111

111110

111100

樣例輸出

2

1 15 6

思路:高斯求異或方程組的解;kuangbin板子

#pragma comment(linker, "/stack:1024000000,1024000000")#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

#define pi (4*atan(1.0))

#define eps 1e-6

#define bug(x) cout<

int n=1e3+10,m=1e6+10,inf=1e9+10

;const ll inf=5e17+10,mod=1e9+7;//

對2取模的01方程組

const

int maxn = 40;//

有equ個方程,var個變元。增廣矩陣行數為equ,列數為var+1,分別為0到var

int a[maxn][maxn]; //

增廣矩陣

int x[maxn]; //

解集int free_x[maxn];//

用來儲存自由變元(多解列舉自由變元可以使用)

int free_num;//

自由變元的個數

//返回值為-1表示無解,為0是唯一解,否則返回自由變元個數

int gauss(int

var,int

equ)

if(a[max_r][col] == 0

)

if(max_r !=k)

for(int i = k+1;i < equ;i++)}}

for(int i = k;i < equ;i++)

if(a[i][col] != 0

)

return -1;//

無解if(k < var) return

var-k;//

自由變元個數

//唯一解,回代

for(int i = var-1; i >= 0;i--)

return0;

}int getpos(int x,int

y)char

s[maxn][maxn];

int check(int x,int

y)int xx[5]=;

int yy[5]=;

void

init()}}

}int

main()

printf(

"%d\n

",ans);

for(int i=0;i<30;i++)

if(x[i]) printf("

%d %d\n

",i/6+1,i%6+1

);

return0;

}/*001111

011111

111111

111110

111100

*/

hihoCoder1196 高斯消元

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述在上一回中,小hi和小ho趁著便利店打折,買了一大堆零食。當他們結賬後,看到便利店門口還有其他的活動。店主 買了東西還可以參加遊戲活動哦,如果能夠完成遊戲還有額外的獎品。小hi和小ho趕緊湊了過去。店主放了一塊遊戲板在店門...

hiho 1166 高斯消元

一道高斯消元題目 題意 給你乙個數列ai,1 i n ai是0或1,現在你可以每次翻轉乙個區間,即將0變1,1變0,且每個區間被選擇的概率為 n n 1 2,問全變成0的翻轉次數期望是多少 思路 另外,這個思路還有一些需要注意的地方,在確定這個方法是對的前提下,那麼d中的1的個數必然是偶數的,這樣的...

高斯消元 浮點高斯消元

浮點數高斯消元 問題描述 給出乙個線性方程組,有n個方程組,m個未知數。解這個線性方程組。輸入格式 第1行 2個整數n和m,n,m 400,且n不一定等於m 接下來n行,每行m 1個整數,表示乙個方程的m個未知數的係數和常數 輸出格式 如果無解,輸出 no solution 如果有唯一解,輸出m行,...