1、深搜(会爆栈,通过开全局栈模拟递归)

爆栈代码

# include<iostream>
# include<string>
# include<string.h>
# include<queue>
# include<stdio.h>
# include<math.h>
#include <algorithm>
using namespace std;
int d[][];
void dfs(int i,int j)
{
if(d[i][j]==) return;
else
{
d[i][j] = ;
dfs(i-,j);
dfs(i+,j);
dfs(i,j-);
dfs(i,j+);
}
}
int main()
{
int n,m,i,j,w,h;
cin>>n;
while(n--)
{
cin>>w>>h;

        d[0][0] = 1;
       d[0][h+1] = 1;
       d[w+1][0] = 1;
       d[w+1][h+1] = 1;

for(i=;i<=w;i++)
{
for(j=;j<=h;j++)
{
if(i==) d[i-][j] = 1;
else if(i==w) d[i+][j] = 1;
else if(j==) d[i][j-] = 1;
else if(j==h) d[i][j+] = 1;
scanf("%d",&d[i][j]);
}
}
int flag = ;
for(i=;i<=w;i++)
{
for(j=;j<=h;j++)
{
if(d[i][j]!= && (i==||i==w||j==||j==h))
{
dfs(i,j);
break;
}
}
if(flag == ) break;
} for(i=;i<=w;i++)
{
for(j=;j<=h;j++)
{
printf("%d ",d[i][j]);
}
printf("\n");
} }
return ;
}

2、广搜(注意w,h输入顺序 先输入h后输入w)

# include<iostream>
# include<string>
# include<string.h>
# include<queue>
# include<stdio.h>
# include<math.h>
#include <algorithm>
using namespace std;
int d[][];
struct Node
{
int x,y;
}node,temp,f[];
queue<Node> q;
void bfs(int x,int y,int w,int h)
{
node.x = x;
node.y = y;
q.push(node);
d[x][y] = ;
while(!q.empty())
{
temp = q.front();
q.pop();
for(int i=;i<;i++)
{
int t1,t2;
t1 = temp.x + f[i].x;
t2 = temp.y + f[i].y;
if(t1>= && t1<=w+ && t2>= && t2<=h+ && d[t1][t2]!=)
{
d[t1][t2] = ;
node.x = t1;
node.y = t2;
q.push(node);
}
}
}
}
int main()
{
int n,m,i,j,w,h;
cin>>n;
f[].x = ;f[].y = ;
f[].x = ;f[].y = -;
f[].x = ;f[].y = ;
f[].x = -;f[].y = ;
while(n--)
{
//cin>>w>>h;
cin>>h>>w;
d[][] = ;
d[][h+] = ;
d[w+][] = ;
d[w+][h+] = ;
for(i=;i<=w;i++)
{
for(j=;j<=h;j++)
{
if(i==) d[i-][j] = ;
else if(i==w) d[i+][j] = ;
if(j==) d[i][j-] = ;
else if(j==h) d[i][j+] = ;
scanf("%d",&d[i][j]);
}
}
bfs(,,w,h);
for(i=;i<=w;i++)
{
for(j=;j<=h;j++)
{
printf("%d ",d[i][j]);
}
printf("\n");
} }
return ;
}

NYOJ 92的更多相关文章

  1. nyoj 92 图像有用区域

    点击打开链接 图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取 ...

  2. nyoj 92 图片实用面积【bfs】

    图像实用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 "ACKing"同学曾经做一个图像处理的项目时.遇到了一个问题,他须要摘取出图片中某 ...

  3. NYOJ 1007

    在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...

  4. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  5. NYOJ 998

    这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...

  6. Entity Framework 6 Recipes 2nd Edition(9-2)译->用WCF更新单独分离的实体

    9-2. 用WCF更新单独分离的实体 问题 你想通过WCF为一个数据存储发布查询,插入,删除和修改,并且使这些操作尽可能地简单 此外,你想通过Code First方式实现EF6的数据访问管理 解决方案 ...

  7. NYOJ 333

    http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...

  8. 用python实现计算1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))类似的公式计算

    作业需求: 开发一个简单的python计算器 1.实现加减乘除及拓号优先级解析 2.用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 ...

  9. KBMMW 4.92.00 发布

    We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW c ...

随机推荐

  1. gdb 脚本调试

    在使用gdb调试程序的时候,有时候需要设定多个断点,重复执行某些操作,而这些操作写起来比较麻烦,这个时候就应该想起来用gdb命令脚本了,它能够很好的完成这些工作.以设置多个断点为例,我写的命令脚本为- ...

  2. Maven 学习 -- 目录

    1. Maven 学习-入门 2. Maven学习-目录结构 3. Maven学习-处理资源文件 啦啦啦

  3. java.util.Queue(队列)的简单使用

    import java.util.LinkedList; import java.util.Queue; import org.junit.Before; import org.junit.Test; ...

  4. Android开发训练之第五章第七节——Transmitting Network Data Using Volley

    Transmitting Network Data Using Volley GET STARTED DEPENDENCIES AND PREREQUISITES Android 1.6 (API L ...

  5. Ajax请求参数较长导致请求失败

    Ajax请求参数比较长,第5行参数大概1100个字符吧,是接口的请求报文. $.ajax({ type:"POST", url:"${ctx}/test.action?m ...

  6. .NET Core开发日志——Dapper与MySQL

    Dapper作为.NET生态中广为人知的轻量级ORM类库在.NET Core里仍能被有效利用,并且其不但可以连通SQL Server数据库还提供对其它数据库,比如MySQL的支持.这里试验了一下通过D ...

  7. 排查 docker flow proxy 的 503 问题

    这是今天我们在开发环境下 docker swarm 集群上遇到的问题,在这篇博文中记录一下排查过程. 先登录到应用容器内检查一下其中运行的站点是否能正常访问: # docker exec -it 02 ...

  8. HDU 1506 & 1505 - Largest Rectangle in a Histogram & City Game

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  9. ==、===和Object.is()的区别

    ==.===和Object.is()的区别 一. 定义: ==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较: ===:恒等,严格比较运算符,不做类型转换,类型不同就是不等: Obj ...

  10. [development][libconfig] 配置文件库

    以前,一直用ini的配置文件. 简单清晰但是不灵活. 换一个: 试试libconfig 主页:  http://www.hyperrealm.com/oss_libconfig.shtml githu ...