博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LOJ】#2057. 「TJOI / HEOI2016」游戏
阅读量:5058 次
发布时间:2019-06-12

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

题解

我并不会做,我觉得很像网络流但是毫无建图思路

我猜了个贪心,写了一下……啥过了90分?!这数据是有多水啊。。

哦又是行列拆点

不过要按照‘#’进行拆点,也就是一段横着的区间只能放一个炸弹,一段竖着的区间只能放一个炸弹,如果两个区间的交点是一个空格的话,那么就把这两个区间拆出来的点连边
最后我们只要求一下最大匹配就可以了

代码

#include 
#define enter putchar('\n')#define space putchar(' ')#define pii pair
#define fi first#define se second#define MAXN 100005#define pb push_back#define mp make_pair#define eps 1e-8//#define ivorysiusing namespace std;typedef long long int64;typedef double db;template
void read(T &res) { res = 0;T f = 1;char c = getchar(); while(c < '0' || c > '9') { if(c == '-') f = -1; c = getchar(); } while(c >= '0' && c <= '9') { res = res * 10 + c - '0'; c = getchar(); }}template
void out(T x) { if(x < 0) {x = -x;putchar('-');} if(x >= 10) out(x / 10); putchar('0' + x % 10);}int N,M;char s[55][55];int idc[55][55],idr[55][55],Ncnt;struct node { int to,next;}E[100005];int head[5005],sumE,matc[5005];bool vis[5005];void add(int u,int v) { E[++sumE].to = v; E[sumE].next = head[u]; head[u] = sumE;}bool match(int u) { for(int i = head[u] ; i ; i = E[i].next) { int v = E[i].to; if(!vis[v]) { vis[v] = 1; if(!matc[v] || match(matc[v])) { matc[v] = u; return true; } } } return false;}int main() {#ifdef ivorysi freopen("f1.in","r",stdin);#endif read(N);read(M); for(int i = 1 ; i <= N ; ++i) scanf("%s",s[i] + 1); for(int i = 1 ; i <= N ; ++i) { ++Ncnt; for(int j = 1 ; j <= M ; ++j) { if(s[i][j] == '#') ++Ncnt; else idr[i][j] = Ncnt; } } for(int j = 1 ; j <= M ; ++j) { ++Ncnt; for(int i = 1 ; i <= N ; ++i) { if(s[i][j] == '#') ++Ncnt; else idc[i][j] = Ncnt; } } for(int i = 1 ; i <= N ; ++i) { for(int j = 1 ; j <= M ; ++j) { if(s[i][j] == '*') add(idr[i][j],idc[i][j]); } } int ans = 0; for(int i = 1 ; i <= Ncnt ; ++i) { if(head[i]) { memset(vis,0,sizeof(vis)); if(match(i)) ++ans; } } out(ans);enter; return 0;}

转载于:https://www.cnblogs.com/ivorysi/p/9504121.html

你可能感兴趣的文章
shell统计特征数量
查看>>
复习文件操作
查看>>
C#Hashtable与Dictionary性能
查看>>
10个让你忘记 Flash 的 HTML5 应用演示
查看>>
8个Python面试必考的题目,小编也被坑过 ToT
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
centos 图形界面和命令行界面切换(转载)
查看>>
Maven启用代理访问
查看>>
Primary definition
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
发送请求时params和data的区别
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
如何增强你的SharePoint 团队网站首页
查看>>
FZU 1914 Funny Positive Sequence(线性算法)
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
MySQL服务读取参数文件my.cnf的规律研究探索
查看>>