題意:給乙個圖,1表示燈亮,0表示燈滅,若轉換某盞燈的狀態,則其四周鄰接的格仔狀態也會改變,求是否能將所有燈關掉,以及關掉所有燈的需要運算元最小的方案
思路:假設第一行的方案確定,則可以根據第一行的格仔來列舉下面的格仔,若某格仔的上乙個格仔燈亮,則該格仔必須翻轉,列舉完之後可以保證最後一行以上的格仔都為燈滅,故只需要判斷最後一行的格仔是否全滅即可,若非全滅,表示這個方案不成立。列舉第一行所有方案(2^n種),取成立的方案中運算元最小的方案即可。
#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn = 20;
const int inf = 0x3f3f3f3f;
const int dx = ;
const int dy = ;
int m, n, flip[maxn][maxn], ans[maxn][maxn], tile[maxn][maxn];
int getcolor(int x, int y)
return c%2;
}int solve()
} for (int i = 0; i < m; i++)
int res = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
return res;
}int main()
} if (res == -1) else
printf("\n");
}} }
return 0;
}
poj 3279 Fliptile 列舉 模擬
簡要題意 踩乙個點翻轉周圍五個點,求全翻成白色的方案中殘磚次數最少而且字典序最小的。我們可以首先確定第一行的翻轉情況,這個用二進位制列舉。然後之後每一行的翻轉情況就已經可以確定了,然後模擬出來就可以了。算是比較經典的題,好像看到過不少類似的題。include include include incl...
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的格仔,每個格仔可以翻轉正反面,它們一面是黑色,另一面是白色。黑色的格仔翻轉後就是白色,白色的格仔翻轉過來則是黒色。遊戲要做的就是把所有的格仔都翻轉成白色。不過因為牛蹄很大,所以每次...