題目鏈結
題目大意:我們稱乙個由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 題解 設矩陣...