原图找最大的房间及房间数很容易。然后从左下到右上找拆的位置。拆掉再bfs一次找面积。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
#include <stack>
#define mkp make_pair
using namespace std;
const double EPS=1e-;
typedef long long lon;
const lon SZ=,INF=0x7FFFFFFF;
int n,m,arr[SZ][SZ],dx[]={,-,,},dy[]={-,,,};
bool vst[SZ][SZ];
struct nd{
int x,y;
nd(int a,int b):x(a),y(b){}
}; void init()
{
cin>>m>>n;
for(int i=;i<=n;++i)
{
for(int j=;j<=m;++j)cin>>arr[i][j];
}
} int bfs(int bgx,int bgy)
{
int res=;
queue<nd> q;
vst[bgx][bgy]=;
q.push(nd(bgx,bgy));
for(;!q.empty();)
{
nd frt=q.front();
q.pop();
for(int i=;i<;++i)
{
int nx=frt.x+dx[i],ny=frt.y+dy[i];
if(!(arr[frt.x][frt.y]&(<<i))&&nx>=&&nx<=n&&ny>=&&ny<=m&&!vst[nx][ny])
{
vst[nx][ny]=;
q.push(nd(nx,ny));
++res;
}
}
}
return res;
} void work(int &block,int &maxb)
{
block=;
maxb=;
for(int i=;i<=n;++i)
{
for(int j=;j<=m;++j)
{
if(!vst[i][j])
{
maxb=max(maxb,bfs(i,j));
++block;
}
}
}
} void work2(int &maxv,int &maxx,int &maxy,char &maxd)
{
maxv=;
for(int j=;j<=m;++j)
{
for(int i=n;i>=;--i)
{
if(arr[i][j]&)
{
memset(vst,,sizeof(vst));
arr[i][j]-=;
int cur=bfs(i,j);
if(cur>maxv)
{
maxv=cur;
maxx=i,maxy=j;
maxd='N';
}
arr[i][j]+=;
}
}
for(int i=n;i>=;--i)
{
if(arr[i][j]&)
{
memset(vst,,sizeof(vst));
arr[i][j]-=;
int cur=bfs(i,j);
if(cur>maxv)
{
maxv=cur;
maxx=i,maxy=j;
maxd='E';
}
arr[i][j]+=;
}
}
}
} int main()
{
std::ios::sync_with_stdio();
//freopen("d:\\1.txt","r",stdin);
lon casenum;
//cin>>casenum;
//for(lon time=1;time<=casenum;++time)
{
init();
int block,maxb;
work(block,maxb);
cout<<block<<endl;
cout<<maxb<<endl;
int maxv,maxx,maxy;
char maxd;
work2(maxv,maxx,maxy,maxd);
cout<<maxv<<endl;
cout<<maxx<<" "<<maxy<<" "<<maxd<<endl;
}
return ;
}

p1457 The Castle的更多相关文章

  1. 洛谷P1457 城堡 The Castle

    P1457 城堡 The Castle 137通过 279提交 题目提供者该用户不存在 标签USACO 难度提高+/省选- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 我们憨厚的USACO ...

  2. 洛谷 P1457 城堡 The Castle 解题报告

    P1457 城堡 The Castle 题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张"幸运爱尔兰" ...

  3. 洛谷 P1457 城堡 The Castle

    P1457 城堡 The Castle 题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张“幸运爱尔兰”(一种彩票).结果这 ...

  4. P1457 城堡 The Castle

    轻度中毒 原题 :The Castle 以下为题解部分:明明辣么简单的一道题,硬是搞了1.5h,WTF?以下列出本题的一些要点. 搜索(DFS)嘛,染色嘛,统计大小嘛,很容易想,也很更易处理. 接下来 ...

  5. 洛谷—— P1457 城堡 The Castle

    https://www.luogu.org/problem/show?pid=1457 题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特 ...

  6. 题解 洛谷P1457 【城堡 The Castle】

    这道题,看似很烦,无从下手,但其实只要用位运算和联通快就能水过了呀. 首先,输入:似乎大意是把一个数拆成二进数的相加,分别表示\((i,j)\)东南西北是否有墙.\(1\)表示西,\(2\)表示北,\ ...

  7. 题解 P1457 【城堡 The Castle】

    来讨论区大摇大摆地逛了一圈后,我发现竟然大家的代码 都很长 然而代码真的要写那么长吗 首先,来分析问题,1,2,4,8,这些数显然是有特点的,也许你已经想到了没错,它们都是2的次方数. 1是2的0次方 ...

  8. P1457 城堡 The Castle 位运算+BFS+思维(难题,好题)

    题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张"幸运爱尔兰"(一种彩票).结果这张彩票让他获得了这次 ...

  9. Castle Core 4.0.0 alpha001发布

    时隔一年多以后Castle 项目又开始活跃,最近刚发布了Castle Core 4.0.0 的alpha版本, https://github.com/castleproject/Core/releas ...

随机推荐

  1. Eclipse中在xml文件中,ctrl+左键的快捷键,点击class定位,不生效

    修改方式:   第一种方式:Window -> Preferences -> General -> Editors -> File Associations           ...

  2. tp框架中的一些疑点知识-4

    $_SERVER的几个元素: script_name脚本名称, 是指这个脚本文件本身的文件名, 通常只是 : /index.php path_info: 是从控制器/操作方法开始到最后的内容,包括路径 ...

  3. bzoj1566: [NOI2009]管道取珠 DP

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1566 思路 n个球,第i个球颜色为ai,对于颜色j,对答案的贡献为颜色为j的球的个数的平 ...

  4. P2761 软件补丁问题

    P2761 软件补丁问题 思路 貌似不用网络流,直接状态压缩 用spfa跑最短路,直接判断是否能过 位运算太渣了,WA了好几发 代码 #include <bits/stdc++.h> us ...

  5. Docker 使用Dockerfile构建tomcat镜像

    Dockerfile概念: 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题. ...

  6. P2475 [SCOI2008]斜堆(递归模拟)

    思路 可并堆真是一种神奇的东西 不得不说这道题是道好题,虽然并不需要可并堆,但是能加深对可并堆的理解 首先考虑斜堆的性质,斜堆和左偏树相似,有如下的性质 一个节点如果有右子树,就一定有左子树 最后插入 ...

  7. hosts文件介绍

    在Window系统中有个Hosts文件(没有后缀名),在Windows98系统下该文件在Windows目录,在Windows2000/XP系统中位于C:\Winnt\System32\Drivers\ ...

  8. Tomcat服务器环境变量配置及在Eclipse中启动和配置

    本文原创,转载需注明出处: 如何配置在Eclipse中配置Tomcat服务器 1.在配置的时候要右击‘我的电脑‘看是否安装了jdk,配置了jdk的环境变量,看是否有classpath和path是否指向 ...

  9. python学习 day017打卡 类与类之间的关系

    本节主要的内容: 1.依赖关系 2.关联关系,组合关系,聚合关系 3.继承关系,self到底是什么? 4.类中的特殊成员 一.类与类之间的依赖关系 在面向对象的世界中,类与类中存在以下关系: 1.依赖 ...

  10. Thymeleaf 模板引擎技术

    引入Thymeleaf: <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf. ...