链接

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

 /*
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. P1067 多项式输出 (模拟)

    题目描述 一元nn次多项式可用如下的表达式表示: 其中,a_i x^i 称为i次项,ai​ 称为i次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 多项式中自变量 ...

  2. codevs——2651 孔子教学——同桌

    2651 孔子教学——同桌  时间限制: 1 s  空间限制: 8000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 孔子是我国古代著名的教育家.他有先见 ...

  3. python3.x之print()

    1.print内容 #!/usr/bin/python print('hello world')    //print("hello world") 2.print变量 #!/us ...

  4. Java并发编程,Condition的await和signal等待通知机制

    Condition简介 Object类是Java中所有类的父类, 在线程间实现通信的往往会应用到Object的几个方法: wait(),wait(long timeout),wait(long tim ...

  5. ios实现下载图片的裁减和显示

    使用如下的方法可以裁减的同时保证了不丢失像素. - (void)connectionDidFinishLoading:(NSURLConnection *)connection{    // Set ...

  6. 使用网络监视器(IRSI)捕捉和分析协议数据包

    转载请注明原地址. 实验名称:  理解子网掩码.网关和ARP协议的作用             一.实验目的和要求 (1) 熟悉IRIS的使用 (2) 验证各种协议数据包格式 (3) 学会捕捉并分析各 ...

  7. 中科燕园GIS外包---交通运输综合地理信息平台

      集地图.服务.应用于一身交通运输综合性的GIS门户   交通运输综合地理信息平台,是集地图.服务.应用于一身交通运输综合性的GIS门户.无需复杂的设置和部署,就可以高速创建交互式地图和应用程序,并 ...

  8. 修改flash builder注释里的@author

    在flash builder里,按Ctrl+Shift+D可以很方便在添加AsDoc注释.可是有些生成的@author是系统的用户名(如:administor),怎么修改这个为自己的名字呢? Step ...

  9. java-冒泡

    一.java冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要 ...

  10. Kafka知识点汇总

    整体结构 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZXJpY19zdW5haA==/font/5a6L5L2T/fontsize/400/fill/I ...