LOJ6226 网络流24题 骑士
来源:互联网 发布:网络打印机ip 编辑:程序博客网 时间:2024/06/07 01:36
这题就是跑个二分图或者最小割 ans=n*n-m-最小割
可以黑白染色 很好想到 上代码
#include<bits/stdc++.h>#define inf (~0u>>2)#define cal(i,j) (i-1)*(n)+jusing namespace std;const int N=2e5+5;const int M=2e2+5; int n,m,ans,s,t,cnt,tot=1;bool mp[M][M]; int head[N],dis[N],cur[N];int fx[8]={1,1,-1,-1,2,2,-2,-2},fy[8]={2,-2,2,-2,1,-1,1,-1};queue<int>q;struct Egde{ int v,nxt,w;}e[N*2];inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}void add(int u,int v,int w){ e[++tot].v=v,e[tot].nxt=head[u],e[tot].w=w,head[u]=tot; e[++tot].v=u,e[tot].nxt=head[v],e[tot].w=0,head[v]=tot;}bool bfs(){ memset(dis,0,sizeof dis); while(!q.empty()) q.pop(); dis[s]=1,q.push(s); while(!q.empty()){ int x=q.front();q.pop(); for(int i=head[x];i;i=e[i].nxt){ int j=e[i].v; if(e[i].w&&!dis[j]){ dis[j]=dis[x]+1; q.push(j); } } } return dis[t]!=0;}int dfs(int x,int del){ if(x==t||!del) return del; int ret=0; for(int& i=cur[x];i&&del;i=e[i].nxt){ int j=e[i].v; if(e[i].w&&dis[j]==dis[x]+1){ int dd=dfs(j,min(del,e[i].w)); e[i].w-=dd; e[i^1].w+=dd; ret+=dd; del-=dd; } } return ret; }void dinic(int& o){ while(bfs()){ for(int i=1;i<=n*n+2;i++) cur[i]=head[i]; o+=dfs(s,inf); }}int main(){ n=read(),m=read(); s=n*n+1,t=n*n+2; for(int i=1,x,y;i<=m;i++) x=read(),y=read(),mp[x][y]=1; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ if(!mp[i][j]){ if((i+j)&1){ add(s,cal(i,j),1); for(int k=0,x,y;k<8;k++){ x=i+fx[k],y=j+fy[k]; if(!mp[x][y]&&x>0&&y>0&&x<=n&&y<=n) add(cal(i,j),cal(x,y),inf); } } else { add(cal(i,j),t,1); } } else cnt++; } dinic(ans); printf("%d",n*n-cnt-ans);}
阅读全文
0 0
- LOJ6226 网络流24题 骑士
- LOJ6226 「网络流 24 题
- loj6226「网络流 24 题」骑士共存问题(二分图最大点独立集,最小割)
- cogs746 [网络流24题]骑士共存
- 【网络流24题】骑士共存问题
- [网络流24题]骑士共存问题
- 骑士共存问题[网络流24题之24]
- 【线性规划与网络流24题 24】骑士共存问题
- 【codevs1922】[网络流24题]骑士共存问题
- 网络流24题24. 骑士共存问题
- cogs 746.[网络流24题] 骑士共存
- [网络流24题] 24 骑士共存(二分图最大独立集,网络最小割)
- [网络流24题][CODEVS1922]骑士共存问题(最大流)
- 【COGS】746 [网络流24题] 骑士共存 最大独立集
- 网络流24题之二十四 骑士共存 最大独立集
- Cogs 746. [网络流24题] 骑士共存(最大独立集)
- [网络流24题][codevs1922] 骑士共存问题 二分图最大独立集
- [网络流24题]骑士共存问题 二分图/最大点权独立集
- 贪心(11.22)
- JDK8安装
- PHP设计模式---单例模式
- 我说编程细节
- 两位数加法
- LOJ6226 网络流24题 骑士
- 量化投资:第7节 寻找策略最优参数和评分
- Python Imaging Library: ImageOps Module(图像运算模块)
- C++ 单例模式
- (1) Hadoop-网站流量日志数据自定义采集
- Combox中的TextChanged和TextUpdate
- slam菜鸟历程二
- 游戏开发学习笔记(六)物品信息的管理及读取
- 重磅 | 机智云平台荣膺“墨提斯奖”智能硬件开放平台创新奖