noip烤餅乾時兩面都要烤,而且一次可以烤r(1<=r<=10)行c(1<=c<=10000)列個餅乾,當一面烤到規定時間時,機器會把整個翻過來以接著烤另一面。
有一天,正當機器準備翻餅乾時發生了**,有一些餅乾被翻了過來,有一些沒有。幸運的是,**過後你可以手工操作,一次可以同時翻若干行或者若干列,但不能單獨翻某乙個餅乾。
寫乙個程式計算通過翻轉使得最終翻過來的餅乾的數量得最大值。 例如下圖是**之後的情況,黑點表示未翻轉,白點表示已經翻**
翻轉第一行後得到:
接著翻轉第1列和第5列得到下圖:
這樣可以使得9個餅乾翻轉過來。
給你乙個r行c列的01矩陣,每次可以翻轉一行或者一列,使其全部反轉。假設不限次數,求最多有多少個0。
我們讀完題後發現,r最大只有10,所以我們考慮從r下手。我們設f[j]是狀態為j的數列中1的個數,那麼在經過若干翻轉後,在所有序列之間取最小值就行了。
操作方法:二進位制狀壓
在輸入之間,對每一行中的每乙個進行豎壓位,如圖所示:
然後,我們用乙個迴圈代表翻轉的方法:
for i 0~(1這樣就會有所需的變化方式。然後,我們再去列舉每一列,進行與i異或,就等於翻轉了。再接著,我們數一數這個序列有多少個1。但是,我們第2重迴圈的答案不止這個,因為我們沒考慮到不變的情況,所以應該是max(1的個數,0的個數)。然後,累加第二重迴圈的答案,在第一重迴圈取個最大值,最後輸出就行了。
總的來說,一共是有三重迴圈的,變化方式和列數和數1
2012 03 3普及組 尋找星座
題目描述 現在你在一張衛星中尋找星座,已知該星座在中正好出現一次,而且形狀一樣,方向一樣,大小也一樣。注意中可能有一些與該星座無關的星星。例如圖1中的星座出現在圖2的衛星中 用圓圈標識部分 圖1中給定的星座需要在x軸上平移2個單位同時在y軸上平移 3個單位才能與衛星中的衛星正好吻合。寫乙個程式,計算...
2012 03 3普及組 坐船旅行
題目描述 noip有n個島嶼,編號為1.n,noip決定在島嶼之間發展船運網路。你在船運票務中心工作,很多人想花盡量少的錢從乙個島到另乙個島進行坐船旅行,他們每個人都報上自己的出發地和目的地,你的任務是告訴他最小花費。但是在這個過程中船的航線不會一直不變,可能會在某個時候增加一些航線,這些新增加的航...
普及組 傳球遊戲
noip2008複賽普及組第三題 上體育課的時候,小蠻的老師經常帶著同學們一起做遊戲。這次,老師帶著同學們一起做傳球遊戲。遊戲規則是這樣的 n個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以把球傳給自己左右的兩個同學中的乙個 左右任意 當老師再次吹哨子時,傳球停...