博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 3360 National Treasures 奇偶匹配的最低点覆盖
阅读量:6981 次
发布时间:2019-06-27

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

标题来源:

意甲冠军:假设a[i][j] != -1 把他转成二进制 最多有12位 代表题目那张图的12个位置 假设相应位是1 说明在那里放一个守卫能够看住a[i][j]位置上的这个东西

思路:明显死最小点覆盖 奇偶匹配建图 

#include 
#include
#include
using namespace std;const int maxn = 55;int vis[maxn*maxn];int y[maxn*maxn];vector
G[maxn*maxn];int n, m;int a[maxn][maxn];int dir[12][2] = {-1, -2, -2, -1, -2, 1, -1, 2, 1, 2, 2, 1, 2, -1, 1, -2, -1, 0, 0, 1, 1, 0, 0, -1};bool dfs(int u){ for(int i = 0; i < G[u].size(); i++) { int v = G[u][i]; if(vis[v]) continue; vis[v] = true; if(y[v] == -1 || dfs(y[v])) { y[v] = u; return true; } } return false;}int match(){ int ans = 0; memset(y, -1, sizeof(y)); for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { if((i+j)%2) { memset(vis, 0, sizeof(vis)); if(dfs(i*m+j)) ans++; } } } return ans;}int main(){ int cas = 1; while(scanf("%d %d", &n, &m) && (n||m)) { for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) scanf("%d", &a[i][j]); for(int i = 0; i < n*m; i++) G[i].clear(); for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { int x = a[i][j]; if(x == -1) continue; for(int k = 0; k < 12; k++, x >>= 1) { if(!x) break; if(!(x&1)) continue; int xx = i + dir[k][0]; int yy = j + dir[k][1]; if(xx < 0 || xx >= n || yy < 0 || yy >= m) continue; if(a[xx][yy] == -1) continue; if((i+j)%2) G[i*m+j].push_back(xx*m+yy); else G[xx*m+yy].push_back(i*m+j); } } } printf("%d. %d\n", cas++, match()); } return 0;}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
人人都会设计模式:03-策略模式--Strategy
查看>>
被忽视但很实用的那部分SQL
查看>>
解读阿里云oss-android/ios-sdk 断点续传(多线程)
查看>>
ML之监督学习算法之分类算法一 ——— 决策树算法
查看>>
骡夫电商地址
查看>>
亚信安全火力全开猎捕“坏兔子”,全歼详解
查看>>
智能家居——IoT零基础入门篇
查看>>
《Linux From Scratch》第一部分:介绍 第一章:介绍-1.3. 更新日志
查看>>
阿里将在雄安新区设3家子公司:涉AI、蚂蚁金服和菜鸟;北航设立全国首个人工智能专业,与百度合作办学...
查看>>
Powershell指令集_2
查看>>
归并排序算法
查看>>
北京第一个公共云计算平台即将诞生
查看>>
5G频谱相争“兵戎相见”各相部署风起云涌
查看>>
云计算从“仰望星空”到“脚踏实地”
查看>>
台积电要造第一款7nm芯片 明年下半年可投产
查看>>
《逻辑与计算机设计基础(原书第5版)》——3.9 二进制加法器
查看>>
《中国人工智能学会通讯》——8.25 基于演化优化的生物网络配准
查看>>
飞鹤乳业CIO:移动化让企业品牌和消费者紧密连接
查看>>
教你编写Node.js中间件,实现服务端缓存
查看>>
美国税局再遭攻击:原是偷来的社会安全号码作祟
查看>>