簡要題意:踩乙個點翻轉周圍五個點,求全翻成白色的方案中殘磚次數最少而且字典序最小的。
我們可以首先確定第一行的翻轉情況,這個用二進位制列舉。然後之後每一行的翻轉情況就已經可以確定了,然後模擬出來就可以了。
算是比較經典的題,好像看到過不少類似的題。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define fi first
#define se second
using
namespace
std;
typedef
long
long ll;
typedef pair pii;
// head
const
int n = 20;
const
int inf = 1e9;
int dx[5] = ;
int dy[5] = ;
bool a[n][n];
bool b[n][n];
bool c[n][n];
bool res[n][n];
void duang(int x, int y)
}bool checkline(int x, int m)
return
true;
}void init(int n, int m, int mask)
}for (int i = 0; i < m; i++)
}}bool process(int n, int m)
}} return checkline(n, m);
}void printans(int n, int m)
}}int getcnt(int n, int m)
}return ans;
}int main()
}int mx = 1
<< m;
int ans = inf;
for (int mask = 0; mask < mx; mask++)
}if (ans == inf) else
memset(res, 0, sizeof res);
}return
0;}
POJ3279 Fliptile 開關問題
記錄乙個菜逼的成長。挑戰程式設計書上的 pragma comment linker,stack 1024000000,1024000000 include include include include include include include include include include ...
反轉問題 POJ 3279 Fliptile
problem description 農夫約翰直到聰明的牛產奶多。於是為了提高牛的至上他準備了如下遊戲。有乙個n m的格仔,每個格仔可以翻轉正反面,它們一面是黑色,另一面是白色。黑色的格仔翻轉後就是白色,白色的格仔翻轉過來則是黒色。遊戲要做的就是把所有的格仔都翻轉成白色。不過因為牛蹄很大,所以每次...
poj 3279 Fliptile 暴力搜尋
當第一行確定後,後面的翻轉必須保證前一行正確,也就是可以通過前一行的情況,確定當前翻轉情況。那列舉第一行,計算答案就可以了 include include include includeusing namespace std int n,m,g 16 16 flip 16 16 ans,as 16 ...