洛谷題解 P5159 WD與矩陣

2021-09-09 06:07:46 字數 1344 閱讀 4627

傳送門

如何用一句話描述:

給定n和m,求有多少種大小為n*m的01矩陣滿足每行每列異或值都是0,答案對998244353取模

yy一下

我們考慮乙個(n-1)*(m-1)的矩陣

很顯然,如果我們隨便填,會發生什麼呢?

會有乙個超級大的答案出來

可是這跟我們的問題有什麼關係?

毫無關係

我們找個特例,比如n=4,m=4

我們可能構造出來乙個矩陣是這樣的:

1 0 1 ?

0 1 1 ?

0 0 0 ?

? ? ? ?

問題來了,?處填什麼?

填之前的坑啊!

用這個栗子來說

最終我們胡搞搞出來得到的是:

1 0 1 0

0 1 1 0

0 0 0 0

1 1 0 0

發現了什麼?

什麼都沒有發現

這個矩陣滿足要求

在關注原來的「?」處

發現:

對於每一行最後乙個,如果當前行1的個數為偶數,那麼它為0,不然就是1

對於每一列最後乙個,如果當前行1的個數為偶數,那麼它為0,不然就是1

複製貼上真好玩

不管怎麼樣,這樣子是可以的,是能得到正解的

那麼,對於處於右下角的呢?

可以證明,當那幾個格仔確定下來時,右下角的格仔不會出現矛盾情況

但是我不會

於是,這就是乙個簡單的快速冪了

上**!噹噹噹噹——

#include

#include

#include

#include

using

namespace std;

long

long t;

long

long n,m;

inline

void

read

(long

long

&x) ch=

getchar()

;}while

(ch>=

'0'&&ch<=

'9')

x*=f;}

long

long

fast_pow

(long

long a,

long

long b,

long

long n)

y=y*y%n;

b=b>>1;

}return t;

}int

main()

return0;

}

洛谷 5160 WD與迴圈

題目描述 這天,wd蒟蒻為了解決乙個小問題寫了個很長很長的for迴圈 int cnt 0 for int a 1 0 a 1 m a 1 printf d n cnt cx過來看了一眼,說 wd你個笨蛋,這道題不是sb題嗎?wd一臉懵逼,只好請你來教教他啦 輸入格式 第一行乙個數t,表示資料組數。接...

洛谷P1005矩陣取數題解 zhengjun

題目描述 帥帥經常跟同學玩乙個矩陣取數遊戲 對於乙個給定的n m n times m n m的矩陣,矩陣中的每個元素ai,ja ai,j 均為非負整數。遊戲規則如下 每次取數時須從每行各取走乙個元素,共n nn個。經過m mm次後取完矩陣內所有元素 每次取走的各個元素只能是該元素所在行的行首或行尾 ...

洛谷題解 P1005 矩陣取數遊戲

這真是一道有趣的題目。垃圾乙個 首先,我們知道,有乙個c 11才有的東西 int128,它的上界是 2 1 然後,我們知道,有乙個叫巨集定義的東西,它可以長這樣 define int int128。最後,有乙個玄學知識,main函式不僅可以是int,也可以是signed。基礎玄學知識介紹完畢。接下來...