題目大意:乙個n*m的棋盤,某些格仔不能用,問用1*2的骨牌能否完全覆蓋這個棋盤,當然,骨牌不能有重疊
思路:顯然黑白染色後,乙個骨牌只能覆蓋乙個白色格仔和乙個黑色格仔,然後我們間二染色建圖,看能否有完美匹配即可tut
#include
#include
#include
#define maxn 10000
using namespace std;
const int dx[10]=;
const int dy[10]=;
int head[maxn],next[maxn],point[maxn],now=0,map[maxn][maxn],id[maxn],match[maxn],h;
bool visit[maxn];
void add(int x,int y)
int dfs(int k)
}return 0;
}int main()
int ans=k;
for(i=1;i<=n;i++)
}int fi=1;
for(i=1;i<=n;i++)}}
}memset(match,-1,sizeof(match));
for(i=1;i<=h;i++)
if(ans==n*m)printf("yes\n");else printf("no\n");
return 0;
}
poj 2446解題報告
題目大意 給你乙個棋盤,讓你用一些1 2的木塊覆蓋這個棋盤,但是棋盤上有些位置是有hole的,這些hole是不能被覆蓋的。如果可以覆蓋的話就輸出yes,否則輸出no。題目分析 這道題很容易讓人想起poj2411 也是一道很經典的題目 但是那道題是要求方案數目,這道題是求可否滿足,是完全不同的,一開始...
POJ 2446 Chessboard 最大匹配
昨天沒有搞出來,今天彙編課想出來了,發現還是水水的,昨天估計是受到前面兩題的影響,一直把思考方向搞錯了 題目要求用1 2的卡片覆蓋整個區域,而且要恰好完全覆蓋,不能有重疊。仔細發現,每個格仔要麼是被橫著的1 2的卡片覆蓋,要麼是豎著的覆蓋,而且每個只能和周圍上下左右的四個格仔同時覆蓋,那麼這裡就可以...
POJ2446 二分匹配
題意 給你乙個n m的格仔,問你能不能用1 2的格仔把他鋪滿,有的位置是不能被鋪的。思路 水題,直接把個相鄰的並且都是可以鋪的點連一條邊然後匹配一遍就行了,提醒乙個地方,就是輸入不能鋪的座標的時候是 先輸入列再輸入行。include include define n node 1500 define...