記錄乙個菜逼的成長。。挑戰程式設計書上的**。
#pragma comment(linker, "/stack:1024000000,1024000000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
#define all(v) (v).begin(),(v).end()
#define cl(a,b) memset(a,b,sizeof(a))
#define bp __builtin_popcount
#define pb push_back
#define mp make_pair
#define fin freopen("d:","r",stdin)
#define fout freopen("d:","w",stdout)
#define lson t<<1,l,mid
#define rson t<<1|1,mid+1,r
#define seglen (node[t].r-node[t].l+1)
#define pi 3.1415926
#define exp 2.718281828459
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair pii;
typedef pairpll;
typedef
vector
vpii;
const
int inf = 0x3f3f3f3f;
const
int mod = 1e9 + 7;
template
inline
void read(t &x)
inline
bool dbread(double &num)
else
if(in=='.')
else num=in-'0';
if(!isd)
}if(in!='.')else
}if(isn) num=-num;
return
true;
}template
inline
void write(t a)
if(a >= 10) write(a / 10);
putchar(a % 10 + '0');
}/******************head***********************/
const
int maxn = 20;
const
int dx[5] = ;
const
int dy[5] = ;
int m,n;
int tile[maxn][maxn];
int opt[maxn][maxn]; //儲存最優解
int flip[maxn][maxn]; //儲存中間結果
//查詢(x,y)的顏色
int get(int x,int y)
}return c % 2;
}//求出第一行確定情況下的最小操作次數
//不存在解的話返回-1
int calc()}}
//判斷最後一行是否全白
for( int j = 0; j < n; j++ )
//統計反轉的次數
int res = 0;
for( int i = 0; i < m; i++ )
}return res;
}void solve()
int num = calc();
if(num >= 0 && (res < 0 || res > num))
}if(res < 0)
else }}
}int main()
}solve();
}return
0;}
poj 3279 Fliptile 列舉 模擬
簡要題意 踩乙個點翻轉周圍五個點,求全翻成白色的方案中殘磚次數最少而且字典序最小的。我們可以首先確定第一行的翻轉情況,這個用二進位制列舉。然後之後每一行的翻轉情況就已經可以確定了,然後模擬出來就可以了。算是比較經典的題,好像看到過不少類似的題。include include include incl...
反轉問題 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 ...