3363 -- 【模擬試題】魔板
description
有這樣一種魔板:它是乙個長方形的面板,被劃分成n行m列的n*m個方格。每個方格內有乙個小燈泡,燈泡的狀態有兩種(亮或暗)。我們可以通過若干操作使魔板從乙個狀態改變為另乙個狀態。操作的方式有兩種:
(1)任選一行,改變該行中所有燈泡的狀態,即亮的變暗、暗的變亮;
(2)任選兩列,交換其位置。
當然並不是任意的兩種狀態都可以通過若干操作來實現互相轉化的。
你的任務就是根據給定兩個魔板狀態,判斷兩個狀態能否互相轉化。
input
包含多組資料。第一行乙個整數k,表示有k組資料。
每組資料的第一行兩個整數n和m。(0≤n,m≤100)
以下的n行描述第乙個魔板。每行有m個數字(0或1),中間用空格分隔。若第x行的 第y個數字為0,則表示魔板的第x行y列的燈泡為「亮」;否則為「暗」。
然後的n行描述第二個魔板。資料格式同上。
任意兩組資料間沒有空行。
output
共k行,依次描述每一組資料的結果。
若兩個魔板可以相互轉化,則輸出yes,否則輸出no。(注意:請使用大寫字母)
sample input2
3 40 1 0 1
1 0 0 1
0 0 0 0
0 1 0 1
1 1 0 0
0 0 0 0
2 20 0
0 11 1
1 1sample output
yesno這道題正解搜尋,但是我們要騙分!!!!!!!!!!!
怎麼騙呢?
我們把每一行的0,1統計出來**換後的也要),然後判是否相等即可。
非常容易被卡,手工資料都可以。
但是資料太水啦
#include#include#include#include#includeusing namespace std;
int k,n,m,b[109][109]=,a[109][109]=;
int possible()
if(((m-bs)!=as)&&(bs!=as))return 0;
} return 1;
}void read()
int main()
return 0;
}
最後附乙個正解:
#include #include inline int getbool()
int k,n,m;
bool b0[101][101],b1[101][101],tmp[101][101];
void hang(bool xx[101],int x)
void lie(bool xx[101],int x,int y)
}int same(bool xx[101],int x,bool yy[101],int y)
int main()
if(!flag) break;
}if(flag) break;
}if(flag) putchar('y'), putchar('e'), putchar('s'), putchar('\n');
else putchar('n'), putchar('o'), putchar('\n');
}return 0;
}
3 3 6 特殊堆疊 30分
是參考一篇部落格的,然後加了一些自己的注釋,學習ing 堆疊是一種經典的後進先出的線性結構,相關的操作主要有 入棧 在堆疊頂插入乙個元素 和 出棧 將棧頂元素返回並從堆疊中刪除 本題要求你實現另乙個附加的操作 取中值 即返回所有堆疊中元素鍵值的中值。給定 n 個元素,如果 n 是偶數,則中值定義為第...
336 文字壓縮
中文english 給你乙個只含有可見字元 ascii 碼範圍 3232 至 126126 文字檔案,檔案中可能出現一些重複的單詞,你需要對它們進行壓縮。壓縮規則如下 如果原檔案中的字元不是英文本元,那麼保留這些字元。我們將連續的英文本元視為乙個單詞,單詞的前後不應該還有其它的英文本元。輸入 ple...
如何安裝gcc 3 3 6
因為實驗中要用到disksim3.0,所以需要在linux下安裝。由於3.0版的disksim比較老了,需要低版本的gcc編譯器。所以,偶又安裝了乙個gcc 3.3.6.第一次安裝這個老版本的gcc,還是費了一下午功夫。下面簡單說一下過程。主要過程參考 首先,不要解除安裝當前系統中的高版本gcc.我...