3503 Cqoi2014 和諧矩陣

2021-08-15 20:18:26 字數 1000 閱讀 5660

題目鏈結

題目大意:我們稱乙個由0和1組成的矩陣是和諧的,當且僅當每個元素都有偶數個相鄰的1。乙個元素相鄰的元素包括它本

身,及他上下左右的4個元素(如果存在),輸出乙個n*m的和諧矩陣

題解:可以直接暴力列出n*m個方程,可以過

設(x,y)為某個位置的取值(出界視為0)

則有(x,y)^(x-1,y)^(x+1,y)^(x,y-1)^(x,y+1)=0,即(x^y)=(x-1,y-1)^(x,y-1)^(x+1,y-1)^(x,y-2)

顯然確定第一行後整個矩陣就確定了……

而第一行的元素取值合理,當且僅當地推出第m+1行的元素都為0(不全0則第m行不合法)

設第一行為未知數,遞推得到第m+1行上的每個點與第一行中每個點的關係,然後高斯消元

全0解顯然可行,可以把自由元視為1以避免全0解(保證有解)

我的收穫:2333

#include

#include

#include

#include

#include

#include

#define f(i,j,n) for(int i=j;i<=n;i++)

#define d(i,j,n) for(int i=j;i>=n;i--)

#define ll long long

using

namespace

std;

int n,m;

ll a[50][50],b[50][50],c[50][50];

inline

int read()

while (ch>='0'&&ch<='9')

return x*f;

} inline

void gauss()

d(i,m,1)

} int main()

return

0;

}

BZOJ3503 Cqoi2014 和諧矩陣

我們發現確定了一行之後,為使這一行沒有不合法情況,下一行就確定了,所以我們可以用第一行的數表示出整個矩陣,而合法當且僅當第n 1行全為0,用n 1行的表示高斯消元出第一行然後遞推整個矩陣即可 include include include include include include includ...

bzoj3503 CQOI2014 和諧矩陣

題目描述 我們稱乙個由0和1組成的矩陣是和諧的,當且僅當每個元素都有偶數個相鄰的1。乙個元素相鄰的元素包括它本身,及他上下左右的4個元素 如果存在 給定矩陣的行數和列數,請計算並輸出乙個和諧的矩陣。注意 所有元素為0的矩陣是不允許的。分析 1.這種矩陣的,乙個元素和它上下左右有關係的,一般都是高斯消...

bzoj3503 Cqoi2014 和諧矩陣

bzoj3503 cqoi2014 和諧矩陣 題意 我們稱乙個由0和1組成的矩陣是和諧的,當且僅當每個元素都有偶數個相鄰的1。乙個元素相鄰的元素包括它本身,及他上下左右的4個元素 如果存在 給定矩陣的行數和列數,計算並輸出乙個和諧的矩陣。注意 所有元素為0的矩陣是不允許的。行列數 40 題解 設矩陣...