中山省選2008 矩陣

2021-08-27 05:48:12 字數 1309 閱讀 2572

zsoi2008 t1

neo 有一種很強的計算能力,他能瞬間計算出兩個矩陣的乘積,但是他的不足是可能會算錯,所以你的任務是對於給出的兩個矩陣,檢查neo 計算出的結果是否正確。

注意給出的矩陣都是 n*n 的 01 矩陣,矩陣的計算也是在二進位製上的,即:

1*1=1,1*0=0*1=0*0=0,1+1=0+0=0,1+0=0+1=1。

還記得矩陣的計算方法嗎?假設 cn*n = an*n * bn*n ,那麼 ci,j = ∑kai,k * bk,j 。

輸入包含多組資料,輸入第一行為資料組數 t(t≤5)。

對於每組輸入資料:第一行為乙個整數 n ;接下來共有 3*n 行,每行 n 個數字,取值 0 或 1 ,資料間無空格。資料前面 n 行描述了矩陣 a ,中間 n 行描述了矩陣 b ,最後 n 行為 neo 計算出來的矩陣 c 。

對於每組輸入資料,如果neo的計算是正確的,輸出「yes」,否則輸出「no」。

輸入

2  2 

10 01 

11 10 

11 01  3 

111 

111 

000 

100 

010 

001 

111 

111 

000

輸出

no 

yes

【資料範圍】

對於 50% 的資料,n≤100;

對於 100% 的資料,n≤1000。

解析:第一次碰到這種玄學隨機演算法。。。

首先暴力

玄學的地方來了,我們隨機乙個一維矩陣

**:

#include using namespace std;

const int max=1010;

int n,t,flag;

int a[max][max],b[max][max],c[max][max];

int d[max],e[max],f[max];

char ch[1010];

inline void mul(int a[max],int b[max][max],int c[max])

}int main()

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

for(int k=1;k<=10;k++)

if(flag) break;

}if(flag) cout<

else cout<

} return 0;

}

中山市選2008 小樹

水題。題目描述 有點羅嗦 給出乙個樹,樹的邊上有權值,現在要你求出乙個滿足下面三個要求的節點集合。第一,根節點不在集合s中。第二,集合中任何兩個節點僅有乙個公共祖先,即根節點。第三,對集合中每個節點都要有兩個值,wi表示到這個節點的路徑上所有的邊權值總和,di表示到這個節點的路徑所包含的邊數,現在要...

C 樹形DP模板 騎士 浙江省選2008

zjoi2008 day2 t4 z 國的騎士團是乙個很有勢力的組織,幫會中匯聚了來自各地的精英。他們劫富濟貧,懲惡揚善,受到社會各界的讚揚。最近發生了一件可怕的事情,的y國發動了一場針對 z 國的侵略戰爭。戰火綿延五百里,在和平環境中安逸了數百年的z國又怎能抵擋的住 y 國的軍隊。於是人們把所有的...

2008省選模擬 瘋狂的饅頭 並查集

cqf十分喜歡吃饅頭。興奮之下他一下子買了n個饅頭請所有認識他的人吃。但是cqf不喜歡白色,喜歡紅色 黃色 綠色等鮮豔的顏色,於是他把所有白色的饅頭排成一列。然後進行m次染色操作。每個染色操作都是用乙個神奇的刷子把連續的多個饅頭染成特定的某種顏色。乙個饅頭最終的顏色是最後一次染它的顏色。如果乙個饅頭...