博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[luogu1971 NOI2011] 兔兔与蛋蛋游戏 (二分图博弈)
阅读量:5024 次
发布时间:2019-06-12

本文共 1673 字,大约阅读时间需要 5 分钟。

Solution

补一篇二分图博弈

这个博客写的很详细qwq:

Code

//By Menteur_Hxy#include 
#include
#include
#include
#include
#define F(i,a,b) for(register int i=(a);i<=(b);i++)#define E(i,u) for(register int i=head[u],v;i;i=nxt[i])#define add(a,b) nxt[++cnt]=head[a],to[cnt]=b,head[a]=cntusing namespace std;const int N=50;int mv[5]={0,1,0,-1,0};int n,m,tot,top,tim,X,Y,cnt;bool mp[N][N],jud[2010],ban[N*N];int head[N*N],to[N*N*N*N],nxt[N*N*N*N],vis[N*N];int id[N][N],mat[N*N],ans[1010];char ch[N];bool dfs(int u) { if(ban[u]) return false; E(i,u) if(vis[(v=to[i])]!=tim&&!ban[v]) { vis[v]=tim; if(!mat[v] || dfs(mat[v])) { mat[v]=u;mat[u]=v; return true; } } return false;}int main() { cin>>n>>m; F(i,1,n) { scanf("%s",ch+1); F(j,1,m) if(ch[j]=='O') mp[i][j]=0; else if(ch[j]=='X') mp[i][j]=1; else if(ch[j]=='.') mp[i][j]=1,X=i,Y=j; } F(i,1,n) F(j,1,m) id[i][j]=++tot; F(i,1,n) F(j,1,m) if(mp[i][j]) F(k,0,3) { int x=i+mv[k],y=j+mv[k+1]; if(mp[x][y]||x<1||x>n||y<1||y>m) continue; add(id[i][j],id[x][y]); add(id[x][y],id[i][j]); } F(i,1,n) F(j,1,m) if(mp[i][j]) ++tim,dfs(id[i][j]); int q; cin>>q; F(i,1,q+q) { int now=id[X][Y],v=mat[now]; ban[now]=true;//!!! if(v) { mat[now]=mat[v]=0; ++tim; jud[i]=!dfs(v); } cin>>X>>Y; } F(i,1,q) if(jud[i+i-1]&jud[i+i]) ans[++top]=i; printf("%d\n",top); F(i,1,top) printf("%d\n",ans[i]); return 0;}

转载于:https://www.cnblogs.com/Menteur-Hxy/p/9608582.html

你可能感兴趣的文章
SVN 错误 Access to SVN Repository Forbidden的原因及解决方法
查看>>
[转]PHP语言的数据库操作函数的理解
查看>>
ADO.Net中DataTable的应用
查看>>
Android Studio 学习 - Activity生命周期
查看>>
[转]application.properties详解 --springBoot配置文件
查看>>
浏览无法加载控件
查看>>
ModelSim应用笔记
查看>>
Android GridView、ListView、ScrollView上下拉刷新
查看>>
Hydra的使用
查看>>
定义为HTML属性的事件句柄的作用域
查看>>
Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 )
查看>>
eclipse中jquery.js文件有错误提示…
查看>>
EPEL for CentOS or Redhat
查看>>
java中GET方式提交和POST方式提交
查看>>
Jquery 中的 event、event.target 和原生JS的 event、event.target 对比
查看>>
maven的概念模型
查看>>
读《程序员修炼之道》项目启动前部分自己有感触的地方
查看>>
实验四:一、二部分
查看>>
经典计算机书之数据结构与算法
查看>>
十、VueJs 填坑日记之在项目中使用Amaze UI
查看>>