链接

分析:先暴力求出联通块数和最大联通块包含多少,接着对于每个位置判断去掉其上下左右的四个位置的墙之后的最大联通块数,并且记得先选最西,然后选最南的顺序了来输出

 /*
PROB:castle
ID:wanghan
LANG:C++
*/
#include "iostream"
#include "cstdio"
#include "cstring"
using namespace std;
const int maxn=+;
int n,m,a[maxn][maxn],vis[maxn][maxn];
int ans,cnt;
int dx[]={,-,,};
int dy[]={-,,,};
int r[]={,,,};
bool judge(int x,int y){
if(x>n||x<=||y<=||y>m)
return false;
return true;
}
void dfs(int x,int y){
if(vis[x][y])
return ;
vis[x][y]=;
ans++;
for(int i=;i<;i++){
int sx=x+dx[i],sy=y+dy[i];
if(judge(sx,sy)){
if((a[x][y]&r[i])==)
dfs(sx,sy);
}
}
/*
if((a[x][y]&1)==0) dfs(x,y-1);
if((a[x][y]&2)==0) dfs(x-1,y);
if((a[x][y]&4)==0) dfs(x,y+1);
if((a[x][y]&8)==0) dfs(x+1,y);*/
}
int main()
{
freopen("castle.in","r",stdin);
freopen("castle.out","w",stdout);
cin>>m>>n;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++)
cin>>a[i][j];
}
memset(vis,,sizeof(vis));
cnt=;
int res=;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(!vis[i][j]){
++cnt;
ans=;
dfs(i,j);
res=max(res,ans);
}
}
}
cout<<cnt<<endl;
cout<<res<<endl;
string ch="";
int x,y;
res=;
for(int j=;j<=m;j++){
for(int i=n;i>=;i--){
if((a[i][j]&)){
memset(vis,,sizeof(vis));
ans=;
a[i][j]-=;
dfs(i,j);
if(ans>res){
res=ans;
x=i,y=j;
ch="";
ch="W";
}
a[i][j]+=;
}
if((a[i][j]&)){
memset(vis,,sizeof(vis));
ans=;
a[i][j]-=;
dfs(i,j);
if(ans>res){
res=ans;
x=i,y=j;
ch="";
ch="N";
}
a[i][j]+=;
}
if((a[i][j]&)){
memset(vis,,sizeof(vis));
ans=;
a[i][j]-=;
dfs(i,j);
if(ans>res){
res=ans;
x=i,y=j;
ch="";
ch="E";
}
a[i][j]+=;
}
if((a[i][j]&)){
memset(vis,,sizeof(vis));
ans=;
a[i][j]-=;
dfs(i,j);
if(ans>res){
res=ans;
x=i,y=j;
ch="";
ch="S";
}
a[i][j]+=;
}
}
}
cout<<res<<endl;
cout<<x<<" "<<y<<" "<<ch<<endl;
}

The Castle的更多相关文章

  1. Castle Core 4.0.0 alpha001发布

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

  2. 对Castle Windsor的Resolve方法的解析时new对象的探讨

    依赖注入框架Castle Windsor从容器里解析一个实例时(也就是调用Resolve方法),是通过调用待解析对象的构造函数new一个对象并返回,那么问题是:它是调用哪个构造函数呢? 无参的构造函数 ...

  3. AOP之Castle DynamicProxy 动态代理

    这里主要介绍使用castle这个动态代理,在.net一些开源的框架里可以找到它的影子,就连微软的rchard也是使用这个进行方法拦截等可以基于这个进行方法拦截,在这个方面PostSharp算是比较好用 ...

  4. ASP.NET Core 整合Autofac和Castle实现自动AOP拦截

    前言: 除了ASP.NETCore自带的IOC容器外,我们还可以使用其他成熟的DI框架,如Autofac,StructureMap等(笔者只用过Unity,Ninject和Castle). 1.ASP ...

  5. MVC Castle依赖注入实现代码

    1.MVc 实现依赖注入 public class WindsorControllerFactory : DefaultControllerFactory { private readonly IKe ...

  6. 避免Castle Windsor引起的内存泄露

    原文地址: http://nexussharp.wordpress.com/2012/04/21/castle-windsor-avoid-memory-leaks-by-learning-the-u ...

  7. Castle中AdditionalInterfaces用法介绍

    首先见下图(图一),其中FooController是一个没有实现任何Interface的空类.需要实现的效果是:通过FooController对象调用FooService的Do方法.设置这一不常见的场 ...

  8. Castle.ActiveRecord多数据库配置

    最近使用Castle.ActiveRecord框架,网上关于多数据支持的文章很少,因此有了这篇博文的产生. 开发工具VS2015,Sql Server2008R2 新建数据库,数据初始化脚本如下: - ...

  9. Castle Windsor常用介绍以及其在ABP项目的应用介绍

    最近在研究ABP项目,有关ABP的介绍请看阳光铭睿 博客,ABP的DI和AOP框架用的是Castle Windsor下面就对Castle Windsor项目常用方法介绍和关于ABP的使用总结 1.下载 ...

  10. 基于Autofac, Castle.DynamicProxy的动态WCF解决方案(原创)

    本方案解决了下面3个主要的问题: 1.减少配置,为了避免每次新增service都需要去修改配置文件,包括服务器端跟各个客户端的. 2.能够使用函数重载,泛型函数,以及泛型类. 3.使项目能够快速地在w ...

随机推荐

  1. BB FlashBack pro导出AVI格式的配置参数

    文件-->导出,选择AVI格式在选择AVI解码器中选择Cinepak Codec by Radius压缩质量:建议6~12%点击确定在AVI导出选项中选择帧速率:4帧每秒音频选择格式 11.02 ...

  2. BUPT复试专题—串查找(?)

    https://www.nowcoder.com/practice/a988eda518f242c29009f8620f654ede?tpId=67&tqId=29642&rp=0&a ...

  3. python 3.4读取输入参数

    python 3.4读取输入参数 学习了:https://blog.csdn.net/qq_24815615/article/details/52302615 注意,sys.args[0]是pytho ...

  4. ElasticSearch集群本机搭建

    ElasticSearch集群本机搭建 elasticsearch elasticsearch -Ehttp.port=8200 -Epath.data=node2 elasticsearch -Eh ...

  5. centos 7 -- Disk Requirements: At least 134MB more space needed on the / filesystem.

    用了幾年的centos7,今天執行yum update時,彈出一行有錯誤的提示:Disk Requirements:   At least 134MB more space needed on the ...

  6. weex 引导页(guide)页面

    slider 和 indicator 都是 weex 的内置组件,且 indicator 是 slider 的子组件. 1.报错处理 原因解析:indicator 样式页面渲染慢 解决方案:indic ...

  7. hdu 5358 First One 2015多校联合训练赛#6 枚举

    First One Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tota ...

  8. opencv2反投影直方图以检測特定的图像内容

    #ifndef HISTOGRAM_H_ #define HISTOGRAM_H_ #include<opencv2/core/core.hpp> #include<opencv2/ ...

  9. Linux变量内容的删除、代替与替换

    变量内容的删除与代替 范例一:先让小写的 path 自己定义变量配置的与 PATH 内容同样 [root@www ~]# path=${PATH} [root@www ~]# echo $path / ...

  10. alsa声卡切换

    环境 ubuntu12.04 因为桌面版的默认装了,而且调声音也很方便,这里说一下server版下的配置,毕竟做开发经常还是用server版的 1.安装 apt-get install alsa-ba ...