同方格取数问题:https://www.cnblogs.com/lokiii/p/8430720.html

记得把障碍点去掉,不连边也不计入sum

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
const int N=100005,inf=1e9,dx[]={-2,-1,1,2,2,1,-1,-2},dy[]={-1,-2,-2,-1,1,2,2,1};
int m,n,h[N],cnt=1,le[N],sum,s,t,a[205][205];
struct qwe
{
int ne,to,va;
}e[N*20];
int read()
{
int r=0,f=1;
char p=getchar();
while(p>'9'||p<'0')
{
if(p=='-')
f=-1;
p=getchar();
}
while(p>='0'&&p<='9')
{
r=r*10+p-48;
p=getchar();
}
return r*f;
}
void add(int u,int v,int w)
{
cnt++;
e[cnt].ne=h[u];
e[cnt].to=v;
e[cnt].va=w;
h[u]=cnt;
}
void ins(int u,int v,int w)
{
add(u,v,w);
add(v,u,0);
}
bool bfs()
{
queue<int>q;
memset(le,0,sizeof(le));
le[s]=1;
q.push(s);
while(!q.empty())
{
int u=q.front();
q.pop();
for(int i=h[u];i;i=e[i].ne)
if(e[i].va>0&&!le[e[i].to])
{
le[e[i].to]=le[u]+1;
q.push(e[i].to);
}
}
return le[t];
}
int dfs(int u,int f)
{
if(u==t||f==0)
return f;
int us=0;
for(int i=h[u];i&&us<f;i=e[i].ne)
if(e[i].va>0&&le[e[i].to]==le[u]+1)
{
int t=dfs(e[i].to,min(e[i].va,f-us));
e[i].va-=t;
e[i^1].va+=t;
us+=t;
}
if(!us)
le[u]=0;
return us;
}
int dinic()
{
int re=0;
while(bfs())
re+=dfs(s,inf);
return re;
}
int main()
{
n=read(),m=read();
s=0,t=n*n+1,sum=n*n-m;
for(int i=1;i<=m;i++)
{
int x=read(),y=read();
a[x][y]=1;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(!a[i][j])
{
int id=(i-1)*n+j;
if((i+j)%2==1)
{
ins(s,id,1);
for(int k=0;k<8;k++)
if(i+dx[k]>=1&&i+dx[k]<=n&&j+dy[k]>=1&&j+dy[k]<=n&&!a[i+dx[k]][j+dy[k]])
ins(id,(i+dx[k]-1)*n+j+dy[k],inf);
}
else
ins(id,t,1);
}//cout<<"Ok"<<endl;
printf("%d\n",sum-dinic());
return 0;
}

最新文章

  1. 【Django】Django 文件下载最佳实践
  2. POJ1321棋盘问题
  3. [Tommas] 测试用例覆盖率(三)
  4. webfont自定义字体的实现方案
  5. Python字符编码讲解
  6. [SOJ] DAG?
  7. nefu 446 今年暑假不AC(贪心)
  8. Win10安装LoadRunner11
  9. 教你分分钟搞定Docker私有仓库Registry
  10. linux上部署Appach,让文件目录以网页列表形式访问
  11. mybatis 一对多的注入 指的是连表查询时候 将不同的查询结果以列表存储对象形式 注入进去 多对一指的是 查询多条结果但都是一样的 只需注入一条
  12. PARAMETERS 指令
  13. 完美实现Android的屏幕常亮功能
  14. PAT 甲级 1022 Digital Library
  15. Day 26封装
  16. java-集合小结
  17. Jekens Source Code Management None 源码管理没有Git
  18. css -- 通俗理解inline、block、inline-block
  19. SpringAop及拦截器
  20. maven项目debug调试不能够进入源码问题解决

热门文章

  1. css三大特性
  2. 09-js数组常用方法
  3. EclipseEE的Web开发环境配置(使用Tomcat作为Web服务器)
  4. mybatis几种开发方式
  5. java 定时备份数据库
  6. flask-admin的学习使用
  7. linux 查找目录下的文件内容并替换(批量)
  8. Linux下进程信息的深入分析
  9. Django:视图和URL配置
  10. excel 学习