POJ 3279(狀壓暴力)

2021-09-11 06:16:05 字數 820 閱讀 6112

poj - 3279

不會做。但是感覺思路挺有意思的

大體的思路是:把第一行狀態確定好了,之後的每一行都由前一行決定,也就是之後的所有狀態都確定好了,此時列舉第一行的狀態,看看根據該情況最後一行是否能符合情況,難點就是狀態的壓縮,也是比較基礎的地方了,主要還是難想,對就是菜。。。

#include#include#include#include#include#include#include#include#include#define ll long long

#define inf 0x3f3f3f3f

using namespace std;

int n, m;

int a[25][25];

int tmp[25][25];

int ans1[25][25];

int d[5][2] = ;

int judge(int x, int y)

return c % 2;

}int calc()

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

if(judge(n, i)) return -1;

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

for(int j = 1; j <= m; j ++)

res += tmp[i][j];

return res;

}int main()

}if(ans == -1)

printf("impossible");

else

}return 0;

}

poj3279 子集列舉 狀態壓縮暴力

題意 給你乙個n m的棋盤,有的棋子正面向上 0 有的棋子反面向上 1 問最少需要多少遍才能把所有的棋子變成正面向上?按字典序輸出每個位置翻轉的次數。這題剛開始想的時候,是想著dfs的,畢竟出現在dfs的專題裡面,原本的想法是記錄下為1的位置,那麼翻肯定就要在它們的附近翻,然後遍歷所有的翻法,可是在...

POJ 3279 搜尋(反轉)

這道題搜尋的角度很有意思。比較直白的想就是每個瓷磚都可以反或不反,2種選擇。這樣的話,搜尋的狀態數時間太多,指數級增長,肯定t。不妨這麼想。如果指定了第1橫排的翻法。那麼如果第1橫排存在黑色,也就是 1,x 為黑。那麼 2,x 就必須反轉才能保證 1,x 為白,那麼第2排的反轉法也確定了。如此類推,...

POJ3279 開關後續

描述 乙個n m 的矩陣,每個格仔 有0和1 兩種狀態 每次可 以翻乙個 格仔,並 且此格仔 的上下左 右都要被 翻。n m的矩陣,每個格仔有0和1兩種狀態.每次可以翻乙個格仔,並且此格仔的上下左右都要被翻。n m的矩陣 每個格 子有0和 1兩種狀 態.每次 可以翻一 個格仔,並且此格 子的上下 左...