传送门

因为骑士只能走"日"字,所以一定是从一个奇点到偶点或偶点到奇点,那么这就是一张二分图,题目要求的其实就是二分图的最大独立集。最大独立集=n-最大匹配。

#include<iostream>
#include<cstdio>
#include<cstring> using namespace std;
const int MAXN = *;
//const int MAXM = 205*205;
const int MAXM = *MAXN; inline int rd(){
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?:;ch=getchar();}
while(isdigit(ch)) {x=(x<<)+(x<<)+ch-'';ch=getchar();}
return f?x:-x;
} int xx[]={,,-,-,-,-,,},yy[]={,,,,-,-,-,-};
int n,m,head[MAXN],cnt,vis[MAXN],match[MAXN];
int to[MAXM<<],nxt[MAXM<<],num,ans;
bool ban[][]; inline void add(int bg,int ed){
// cout<<bg<<" "<<ed<<endl;
to[++cnt]=ed,nxt[cnt]=head[bg],head[bg]=cnt;
} inline void bfs(int x,int y){
for(register int i=;i<=;i++){
int ii=xx[i]+x,jj=yy[i]+y;
if(ii< || ii>n || jj< || jj>n || ban[ii][jj]) continue;
add((x-)*n+y,(ii-)*n+jj);
}
} bool dfs(int x){
for(register int i=head[x];i;i=nxt[i]){
int u=to[i];if(vis[u]==num) continue;
vis[u]=num;
if(!match[u] || dfs(match[u])) {match[u]=x;return true;}
}
return false;
} int main(){
n=rd(),m=rd();int x,y;
for(register int i=;i<=m;i++){
x=rd(),y=rd();
ban[x][y]=;
}
for(register int i=;i<=n;i++)
for(register int j=(+((i-)&));j<=n;j+=)
if(!ban[i][j]) bfs(i,j);
for(register int i=;i<=n;i++)
for(register int j=(+((i-)&));j<=n;j+=)
if(!ban[i][j]) num++,ans+=dfs((i-)*n+j);
cout<<(n*n-m)-ans;
return ;
}

最新文章

  1. [转载]iOS 10 UserNotifications 框架解析
  2. HOJ 1004: Prime Palindromes
  3. mysql常用命令之-用户密码修改
  4. Linux 进程间通信(二) 管道
  5. 环信SDK与Apple Watch的结合(3)
  6. CodeSmith和PowerDesigner的使用安装和数据库创建
  7. 第九章 jQuery验证插件简介
  8. 95秀-异步http请求完整过程
  9. VS2010断点无效
  10. implements ApplicationContextAware 获取spring 容器
  11. Linux常用操作命令(一)
  12. openresty lua 文件上传与删除
  13. Android Support WorkManager使用详解
  14. Linux怎么开启ssh
  15. java之 JVM 内存管理详解
  16. exe4j 使用记录(一):下载、安装及注册
  17. C#连接Oracle数据库查询数据
  18. Mac下配置maven和集成到ecclipse(Mac 10.12)
  19. python .loc vs .iloc区别
  20. android 关于Make sure the plugin is properly configured问题的解决办法

热门文章

  1. Unity NGUI 粒子的排序
  2. ncurses库的介绍与安装
  3. 2019 USP Try-outs 练习赛
  4. TensorFlow 与cudnn版本不匹配问题
  5. 20140421 常量指针与指针常量; const指针; reinterpret_cast ;const_cast作用
  6. 关于a[::-1]
  7. Opencv稍微高级点的鼠标事件-OpenCV步步精深
  8. JS的十大经典算法
  9. leetcode-216-组合总和③
  10. MySQL回滚到某一时刻数据的方法