[JSOI2009]游戏Game
2018-01-05 09:00
176 查看
Description
![](http://www.lydsy.com/JudgeOnline/images/1443.jpg)
Input
输入数据首先输入两个整数N,M,表示了迷宫的边长。 接下来N行,每行M个字符,描述了迷宫。Output
若小AA能够赢得游戏,则输出一行"WIN",然后输出所有可以赢得游戏的起始位置,按行优先顺序输出 每行一个,否则输出一行"LOSE"(不包含引号)。Sample Input
3 3.##
...
#.#
Sample Output
WIN2 3
3 2
HINT
对于100%的数据,有1≤n,m≤100。 对于30%的数据,有1≤n,m≤5。这道题和[b][NOI2011]兔兔与蛋蛋游戏[/b][b]很像[/b]
[b]首先黑白染色[/b]
[b]同样的,对于一个点,如果它不一定构成最大匹配[/b]
[b]也就是ban掉该点后还有最大匹配[/b]
[b]那么它就是后手必胜[/b]
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; struct Node { int next,to; }edge[100001]; int head[10001],num,n,m,x,y,id[101][101],cnt,cx[10001],tot; bool vis[10001]; char s[1001]; void add(int u,int v) { num++; edge[num].next=head[u]; head[u]=num; edge[num].to=v; } bool dfs(int x) {int i; for (i=head[x];i;i=edge[i].next) { int v=edge[i].to; if (vis[v]==0) { vis[v]=1; if (!cx[v]||dfs(cx[v])) { cx[x]=v;cx[v]=x; return 1; } } } return 0; } int main() {int i,j,flag=0; cin>>n>>m; for (i=1;i<=n;i++) { scanf("%s",s+1); for (j=1;j<=m;j++) { if (s[j]=='.') id[i][j]=++cnt; } } for (i=1;i<=n;i++) { for (j=1;j<=m;j++) if (id[i][j]) { if (i>1&&id[i-1][j]) add(id[i][j],id[i-1][j]); if (i<n&&id[i+1][j]) add(id[i][j],id[i+1][j]); if (j>1&&id[i][j-1]) add(id[i][j],id[i][j-1]); if (j<m&&id[i][j+1]) add(id[i][j],id[i][j+1]); } } for (i=1;i<=n;i++) { for (j=1;j<=m;j++) if (id[i][j]&&(i+j)%2) { memset(vis,0,sizeof(vis)); dfs(id[i][j]); } } for (i=1;i<=n;i++) { for (j=1;j<=m;j++) if (id[i][j]) { memset(vis,0,sizeof(vis)); int u=id[i][j],v=cx[id[i][j]]; vis[u]=1; if (!cx[u]||dfs(v)) { cx[u]=0; if (flag==0) cout<<"WIN\n"; flag=1; printf("%d %d\n",i,j); } } } if (flag==0) cout<<"LOSE"; }
相关文章推荐
- [BZOJ1443][JSOI2009]游戏Game
- BZOJ 1443 [JSOI2009]游戏Game
- BZOJ1443: [JSOI2009]游戏Game
- bzoj1443 [JSOI2009]游戏Game
- BZOJ:[JSOI2009]游戏Game【二分图匹配乱搞】
- [BZOJ]1443 [JSOI2009]游戏Game 二分图+博弈
- 【BZOJ1443】【JSOI2009】游戏Game 二分图+博弈
- BZOJ 1443 JSOI 2009 游戏Game 二分图+博弈
- BZOJ1443 [JSOI2009]游戏Game 【博弈论 + 二分图匹配】
- 【JSOI 2009】游戏 Game
- bzoj1443 [JSOI2009]游戏Game
- BZOJ 1443: [JSOI2009]游戏Game
- [JSOI2009]游戏Game 匹配
- [二分图博弈] BZOJ 1443 [JSOI2009]游戏Game & BZOJ 2437 [Noi2011]兔兔与蛋蛋
- BZOJ 1443: [JSOI2009]游戏Game
- bzoj1443 [JSOI2009]游戏Game
- [JSOI2009]游戏Game 匹配
- bzoj 1443: [JSOI2009]游戏Game
- 【BZOJ1443】游戏Game(JSOI2009)-二分图最大匹配+博弈
- bzoj 1443: [JSOI2009]游戏Game 二分图博弈