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 ...
随机推荐
- 6、二、App Components(应用程序组件):1、Intents and Intent Filters(意图和意图过滤器)
1.Intents and Intent Filters(意图和意图过滤器) 1.0.Intents and Intent Filters(意图和意图过滤器) An Intent is a messa ...
- IntellIJ IDEA 配置 Vue 支持
IDEA版本: IntelliJ IDEA 2017.2Build #IU-172.3317.76, built on July 15, 2017Licensed to Administrator J ...
- VS设置DLL所在的调试目录
如果一个项目依赖的DLL不想写在Path中,可以在 配置属性-调试-环境中添加 PATH=D:/OSG/bin;$(PATH)
- Python判断字符集
Python利用第三方库chardet可以判断字符集. https://chardet.readthedocs.io >>> import urllib >>> r ...
- 【netcore基础】.Net core使用swagger自动生成开发文档
之前写过一篇 .Net 版本的博客 https://www.cnblogs.com/jhli/p/8317566.html 现在只不过用了 netcore 之后的版本,其实差不多 netcore版本的 ...
- nuxt项目中vue报错The client-side rendered virtual ...
报错: 翻译过来是: [Vue警告]:客户端呈现的虚拟DOM树与服务器呈现的内容不匹配.这可能是由不正确的HTML标记引起的,例如在其中嵌套块级元素或丢失.Bailing水化和执行完整的客户端渲染. ...
- Java基础语法<七> 对象与类 封装
笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 1. 类之间的关系 1.1 依赖 users– a 是一种最明显的.最常见的关系.如果一个类的方法操作另一个 ...
- 高效办公必不可少的5个Excel技巧
1.输入“001.002…”的编号 想要快速给表格添加上“001.002…”这样的编号,你可以这样做: 选择所有单元格——右键点击[设置单元格格式]——点击[文本]——点击[确定]即可. 2.单元格内 ...
- db2 删除过期的日志和备份文件(转)
DB2 删除过期备份和日志 $ db2 list history archive log all forpayment2 ------列出归档日志 $ db2 list history back ...
- MySql 远程连接的条件
1.首先看服务器防火墙 引用:http://www.cnblogs.com/silent2012/archive/2015/07/28/4682770.html CentOS 7.0默认使用的是fir ...