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兩種狀 態.每次 可以翻一 個格仔,並且此格 子的上下 左...