有一个n*m的城堡,由一个个小房间组成,每个房间由一个零和四面的墙组成,每个房间都有一个价值,

价值的计算方式是:west_walls价值为1,north_walls价值为2,east_walls价值为4,south_walls价值为8,

walls的价值加在一起就是这个房间的价值。先输入n,m,随后输入n*m的数字矩阵。问castle有几个房间,最大的房间多大?

这道题的关键在于,深搜的时候的方向,要用到位运算

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std; int mp[55][55],vis[55][55];
int cnt=0,area=0,maxarea=0;
void dfs(int x,int y)
{
if(vis[x][y]) return ;
vis[x][y]=1;
area++;
if((mp[x][y]&1) == 0) dfs(x,y-1);
if((mp[x][y]&2) == 0) dfs(x-1,y);
if((mp[x][y]&4) == 0) dfs(x,y+1);
if((mp[x][y]&8) == 0) dfs(x+1,y);
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>mp[i][j];
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(!vis[i][j]){
cnt++;
area = 0;
dfs(i,j);
}
maxarea = max(maxarea,area);
}
}
cout<<cnt<<endl<<maxarea<<endl;
return 0;
}

poj1164 The Castle的更多相关文章

  1. 深度优先搜索入门:POJ1164城堡问题(递归、用栈模拟递归)

    将问题的各状态之间的转移关系描述为一个图,则深度优先搜索遍历整个图的框架为:Dfs(v) {if( v 访问过)return;将v标记为访问过;对和v相邻的每个点u: Dfs(u);}int main ...

  2. Castle Core 4.0.0 alpha001发布

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

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

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

  4. AOP之Castle DynamicProxy 动态代理

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

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

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

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

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

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

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

  8. Castle中AdditionalInterfaces用法介绍

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

  9. Castle.ActiveRecord多数据库配置

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

随机推荐

  1. Beyond Compare 4 提示错误“这个授权密钥已被吊销”的解决办法

    错误提示: 这个授权密钥已被吊销. 解决方法: 删除以下目录中的所有文件即可. C:\Users\Administrator\AppData\Roaming\Scooter Software\Beyo ...

  2. jna调用c++的dll

    import java.util.ArrayList; import java.util.List; import com.sun.jna.Structure; public class MyStru ...

  3. 第二期,问道PC端游戏免安装,下载即可体验

    最近 迷恋游戏搭建不能自拔.搭建过 手游梦幻诛仙,传奇等等. 今天还是推荐PC端的问道这款游戏,原因是个人投入修改的时间太多了.基本完善了好多.这还得感谢这都是论坛的各位大佬体验的结果. 原来这个游戏 ...

  4. 解决代理池的问题AttributeError: 'int' object has no attribute 'items'

    https://blog.csdn.net/mygodit/article/details/86689127

  5. day04-Servlet介绍(1)

    1.servlet的概述 a.什么是servlet --servlet是javaWeb的三大组件(Listener,Filter)之一,他属于动态资源 --servlet的作用是(10086): 服务 ...

  6. tomcat简单使用

    下载解压tomcat[root@localhost]# tar zxf apache-tomcat-8.5.4.tar.gz -C /usr/local/tomcat yum自带JDK,注意区别JRE ...

  7. qt布局管理-缩放、多窗口切换

    关于缩放的布局 所有控件要求与主窗口同时缩放,那么在所有控件设置好布局后,最后点击最外侧的主控件,选择水平布局或者垂直布局即可. 另外每个空间的属性可更改,如SizePolicy用于设置空间是否可缩放 ...

  8. 合适IT人的健身技巧

    合适IT人的健身技巧: 健身益寿生活十条 虽然遗传学家说人的平均寿命可长达120岁,但本世纪人的寿命远远达不到这个数字^有鉴于此,国外一批医生.心理学家和营养学家制定了健身益寿生活10条准则,认为如能 ...

  9. shapefile添加字段 设置文件名为字段内容

    转眼间,这一年又结束了,再记录一点知识吧 同事说他有好多shapefile,想给每个shapefile添加一字段,并设置该字段的内容为shapefile文件名,想着用arcpy实现,于是有了下面的代码 ...

  10. bittorrent 学习(三) MSG

    msg.c中 int转化 char[4]  char[4]转化int的函数 如下(有多种方案) ]) { c[] = i % ; c[] = (i - c[]) / % ; c[] = (i - c[ ...