uva 11464 偶數矩陣 (二進位制表示法)

2021-08-28 07:50:55 字數 551 閱讀 5665

題目大意:有乙個n*n的01矩陣,你的任務是把盡量少的0變成1,(但不能將1變成0)以使得每個元素的上下左右的元素(若存在)均為偶數。

思路 : 如果暴力列舉每乙個位置的話時間複雜度為 2 的255 次方,肯定不行 。但是如果只列舉第一行,其他下面幾行都能夠通過

上邊的來固定是0還是1。時間複雜度就是 2的15次方 加2的n次方;

利用而二進位制數來列舉每一種情況 00000 00000 00000 ~11111 11111 11111  (1<<15)

#include #include using namespace std;

int arr[16][16],brr[16][16];

const int inf=1e9+7;

int n;

int change(int s)

if(ans!=inf)

cout <<"case "

cout <<"case "<}

return 0;

}

UVa11464偶數矩陣 部分列舉 遞推

題意 有乙個n n的01矩陣,任務是把盡可能少的0變成1,使得每個元素的上 下 左 右元素之和為偶數。n 15 0 0 0 0 1 0 1 0 0 1 0 1 需要3次變化 0 0 0 0 1 0 思路 最容易想到列舉所有數字變或不變,2 15 15 2 255 就是5 10 67左右。注意到n小於...

uva 11464 暴力列舉矩陣

這個題也是乙個列舉子集暴力,訓練賽的時候沒有做出來,這個對於矩陣的表示,偶數矩陣就是乙個位置的上下左右加起來都是偶數,才能算是偶數矩陣,直接暴力列舉第一行,然後確定下面的位置,然後如果有衝突那就不對,如果沒有衝突,然後比對,與之前的矩陣的變換,就可以獲得改變次數,然後每次取最小。include in...

uva11464 偶矩陣,推理題

明天省賽,所以今天做幾道所謂水題,可惜這個題因為輸出寫錯wa了很久,如果直接列舉矩陣所有的位置是否改變,那麼時間複雜度是承受不住的 這道題讓我學到的,就是 1 遇到題先手算模擬,然後嘗試找規律吧。這道題的規律就是 第一行一旦確定,那麼整個矩陣就可以確定,所以列舉第一行,還可以的 2 if else ...