p1457 The Castle
原图找最大的房间及房间数很容易。然后从左下到右上找拆的位置。拆掉再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的更多相关文章
- 洛谷P1457 城堡 The Castle
P1457 城堡 The Castle 137通过 279提交 题目提供者该用户不存在 标签USACO 难度提高+/省选- 提交 讨论 题解 最新讨论 暂时没有讨论 题目描述 我们憨厚的USACO ...
- 洛谷 P1457 城堡 The Castle 解题报告
P1457 城堡 The Castle 题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张"幸运爱尔兰" ...
- 洛谷 P1457 城堡 The Castle
P1457 城堡 The Castle 题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张“幸运爱尔兰”(一种彩票).结果这 ...
- P1457 城堡 The Castle
轻度中毒 原题 :The Castle 以下为题解部分:明明辣么简单的一道题,硬是搞了1.5h,WTF?以下列出本题的一些要点. 搜索(DFS)嘛,染色嘛,统计大小嘛,很容易想,也很更易处理. 接下来 ...
- 洛谷—— P1457 城堡 The Castle
https://www.luogu.org/problem/show?pid=1457 题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特 ...
- 题解 洛谷P1457 【城堡 The Castle】
这道题,看似很烦,无从下手,但其实只要用位运算和联通快就能水过了呀. 首先,输入:似乎大意是把一个数拆成二进数的相加,分别表示\((i,j)\)东南西北是否有墙.\(1\)表示西,\(2\)表示北,\ ...
- 题解 P1457 【城堡 The Castle】
来讨论区大摇大摆地逛了一圈后,我发现竟然大家的代码 都很长 然而代码真的要写那么长吗 首先,来分析问题,1,2,4,8,这些数显然是有特点的,也许你已经想到了没错,它们都是2的次方数. 1是2的0次方 ...
- P1457 城堡 The Castle 位运算+BFS+思维(难题,好题)
题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张"幸运爱尔兰"(一种彩票).结果这张彩票让他获得了这次 ...
- Castle Core 4.0.0 alpha001发布
时隔一年多以后Castle 项目又开始活跃,最近刚发布了Castle Core 4.0.0 的alpha版本, https://github.com/castleproject/Core/releas ...
随机推荐
- python --- 21 MRO C3算法
一.python2.2之前用的是 经典类的MRO继承 ①深度递归继承 从左到右 ,一条路走到黑 ②广度继承 一层一层的继承 深度继承时 为 R 1 2 3 4 ...
- git常见使用场景总结
1.怎么回退到之前的commit? 用git reset --hard HEAD回退到最新提交的版本 用git reset --hard HEAD^回退到上一个版本 用git reset --hard ...
- P3979 遥远的国度
P3979 遥远的国度 思路 一开始我用这个函数得到左端点 int get_l(int x,int y) { if(top[x]==top[y]) return son[x]; int last=to ...
- Vistual Studio Code配置
目录 查看版本,帮助: 修改vscode的扩展目录: 用户和工作区设置 用户设置的文件保存在如下目录: 所以有三种方式更改默认的设置: vscode同步配置: vscode启动launch.json配 ...
- Dispose in c#
在标准的Dispose模式中,真正的IDisposable接口的Dispose方法并没有做实际的清理工作,它其实是调用了下面的这个带bool参数且受保护的的虚方法: protected virtual ...
- Codeforces-Anastasia and pebbles
这是一道很有意思的(水)题. 地址戳:http://codeforces.com/problemset/problem/789/A 题目的大意呢,就是一个可爱的大姐姐的故事.说是啊,她每天都带着两个一 ...
- HTTP Status 404 - No result defined for action com.ouyang.action.GreetingAction and result success 错误解决办法
1.原来设置的包声明: <package name="myPackage" extends="struts-default"> <!-- 定义 ...
- React native 开发如何使用阿里的icon
首先是通过Text来引用的 但是区分是 familay <Text style={{fontFamily:'iconfont', fontSize:fontsize, color:this.st ...
- dataTables使用整理(一)
初次使用dataTables,对一些用到的属性及遇到的问题做一个简要的记录 参考资料: http://blog.csdn.net/mickey_miki/article/details/8240477 ...
- Educational Codeforces Round 23 C. Really Big Numbers 暴力
C. Really Big Numbers time limit per test 1 second memory limit per test 256 megabytes input standar ...