NYOJ 92
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的更多相关文章
- nyoj 92 图像有用区域
点击打开链接 图像有用区域 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取 ...
- nyoj 92 图片实用面积【bfs】
图像实用区域 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描写叙述 "ACKing"同学曾经做一个图像处理的项目时.遇到了一个问题,他须要摘取出图片中某 ...
- NYOJ 1007
在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)
建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...
- NYOJ 998
这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...
- Entity Framework 6 Recipes 2nd Edition(9-2)译->用WCF更新单独分离的实体
9-2. 用WCF更新单独分离的实体 问题 你想通过WCF为一个数据存储发布查询,插入,删除和修改,并且使这些操作尽可能地简单 此外,你想通过Code First方式实现EF6的数据访问管理 解决方案 ...
- NYOJ 333
http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...
- 用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 ...
- KBMMW 4.92.00 发布
We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW c ...
随机推荐
- 检测浏览器是否支持某个css属性
以浏览器是否支持translate3d 为例说明,当然现代浏览器已经支持该属性.如果浏览器实现了带有前缀的某个属性,比如说支持-webkit-transform,但是不支持直接写transform,可 ...
- fs项目---->migrate-mongo的使用(一)
tw项目中用的是mongo数据库,数据的迁移也是需求的一部分.这时我们可以使用migrate-mongo在nodejs中方便的进行数据的迁移,以下记录一下使用的过程. 一.migrate-mongo的 ...
- css3整理--transform
transform语法: transform : none | <transform-function> [ <transform-function> ]* none为默认值, ...
- 如何用JQuery实现单元格 循环变背景色
要不断循环最好用 setInterval 吧var i = 0;var obj = $("tr td");setInterval(function(){ obj.css(" ...
- iOS - UILabel添加图片之富文本的简单应用
//创建富文本 NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:@" ...
- Jenkins插件管理
1.配置jenkins需要的maven.jdk路径 [root@db01 secrets]# echo $JAVA_HOME /application/jdk [root@db01 secrets]# ...
- Python中StringIO和BytesIO
介绍一下Python在内存中读写数据,用到的模块是StringIO和BytesIO StringIO >>> from io import StringIO >>> ...
- IIS8.5 Error Code 0x8007007e HTTP 错误 500.19的解决方法
window server 2012R2 IIS8.5 引用:https://www.52jbj.com/yunying/340443.html HTTP 错误 500.19 - Internal S ...
- hdu3374 String Problem【最小表示法】【exKMP】
String Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 泡泡一分钟:A Multi-Position Joint Particle Filtering Method for Vehicle Localization in Urban Area
A Multi-Position Joint Particle Filtering Method for Vehicle Localization in Urban Area 城市车辆定位的多位置联合 ...