PID195 / 校园迷宫☆

从x,y走到去q,w的最小步数,限制是有的点可走,有的点不可走,BFS嘛。

#include<bits/stdc++.h>

using namespace std;

int n,m,a[][],b[][],q,w,e,r,ans;

int dx[]={,,,-},
dy[]={,-,,}; queue<pair<int,int> >Q;
bool vis[][];
void bfs(){
vis[q][w]=;
Q.push(make_pair(q,w));
while(!Q.empty()){
int x=Q.front().first,y=Q.front().second;Q.pop();
if(x==e&&y==r){
ans=b[x][y];
break;
}
for(int i=;i<;i++)
{
int tx=x+dx[i],ty=y+dy[i];
if(tx>=&&ty>=&&tx<=n&&ty<=m&&!vis[tx][ty]&&!a[tx][ty]){
b[tx][ty]=b[x][y]+;
vis[tx][ty]=;
Q.push(make_pair(tx,ty));
}
}
}
} int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
scanf("%d",&a[i][j]);
}
}
scanf("%d%d%d%d",&q,&w,&e,&r);
bfs();
if(!ans) printf("No Answer!\n");
else printf("%d\n",ans);
return ;
}

PID335 / 流星雨☆

Bessie听说有一场壮丽的流星雨即将来临,而且据说陨石将要落下来撞击地球并摧毁一切它遇到的东西。为了保证自己的安全,bessie决定到一个安全的(永远不会被陨石击毁)地方去。

报道表明将有M颗陨石落下(1 ≤ M ≤ 50,000),第i个陨石将在Ti(0 ≤ Ti ≤ 1,000)时刻砸中(Xi,Yi)点(0 ≤ Xi ≤ 300; 0 ≤ Yi ≤ 300) 。每颗陨石将击毁它直接砸中的点以及四个与其直接相邻的点

她现在所处的地方是坐标系的原点,并从零时刻起出发,前往一个安全的地点,要求是她经过某点时该点未被击毁。她只能在坐标系的第一象限以及x,y轴的正半轴上活动。

求她能到达一个安全地点的最短时间。

BFS嘛,跟上一题差不多

#include<bits/stdc++.h>

using namespace std;

int a[][],m;

int b[][],ans=-;

int dx[]={,,,-},
dy[]={,-,,}; queue<pair<int,int> >Q;
bool vis[][];
void bfs(){
vis[][]=;
Q.push(make_pair(,));
while(!Q.empty()){
int x=Q.front().first,y=Q.front().second;Q.pop();
// if(x==0&&y==0) goto end;
if(a[x][y]>){
ans=b[x][y];
break;
}
// end:
for(int i=;i<;i++)
{
int tx=x+dx[i],ty=y+dy[i];
if(tx>=&&ty>=&&tx<=&&ty<=&&!vis[tx][ty]&&a[tx][ty]>b[x][y]+){
b[tx][ty]=b[x][y]+;
vis[tx][ty]=;
Q.push(make_pair(tx,ty));
}
}
}
} int main()
{
scanf("%d",&m);
memset(a,0x3f,sizeof(a));
for(int t,x,y,i=;i<=m;i++){
scanf("%d%d%d",&x,&y,&t);
a[x][y]=min(t,a[x][y]);
for(int k=;k<;k++){
if(x+dx[k]>=&&y+dy[k]>=)
a[x+dx[k]][y+dy[k]]=min(a[x+dx[k]][y+dy[k]],t);
}
}
bfs();
printf("%d\n",ans);
return ;
}

2999: 卫星照片 USACO 2005 NOV

求出最大的联通块大小

#include<bits/stdc++.h>

using namespace std;

int n,m;
char a[][];
int ans; int dx[]={,,,-},
dy[]={,-,,}; bool vis[][]; queue<pair<int,int> >Q; int bfs(int x,int y){
int an=;
Q.push(make_pair(x,y));
vis[x][y]=;
while(!Q.empty()){
int x=Q.front().first,y=Q.front().second;Q.pop();++an;
for(int i=;i<;i++){
int tx=x+dx[i],ty=y+dy[i];
if(!vis[tx][ty]&&a[tx][ty]=='*'&&tx>=&&ty>=&&tx<=n&&ty<=m){
vis[tx][ty]=;
Q.push(make_pair(tx,ty));
}
}
}
return an;
} int main()
{
scanf("%d%d",&m,&n);
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(!vis[i][j]&&a[i][j]=='*'){
ans=max(bfs(i,j),ans);
}
}
}
printf("%d\n",ans);
return ;
}

BFS入门篇——RQNOJ195&&335的更多相关文章

  1. Hadoop生态圈-Hive快速入门篇之HQL的基础语法

    Hadoop生态圈-Hive快速入门篇之HQL的基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的重点是介绍Hive中常见的数据类型,DDL数据定义,DML数据操作 ...

  2. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

  3. spring boot(一):入门篇

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  4. 1. web前端开发分享-css,js入门篇

    关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...

  5. 一个App完成入门篇(七)- 完成发现页面

    第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...

  6. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  7. 转:OSGi 入门篇:模块层

    OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文 ...

  8. 转:OSGi 入门篇:生命周期层

    OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或 ...

  9. 【three.js详解之一】入门篇

    [three.js详解之一]入门篇   开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...

随机推荐

  1. C#使用oledb连接excel运行Insert Into语句出现“操作必须使用一个可更新的查询”的解决的方法

    我错误发生时的环境:Windows 7,Framework 4.0,Microsoft Office 2007,VS2010,c# WinForm. 部分代码: string strConn = &q ...

  2. 分布式软件体系结构风格(C/S,B/S)

    分布式软件体系结构风格 1.  三层C/S结构 2.  三层B/S结构 了解很多其它软件体系结构 三层C/S结构(3-Tier C/S Architecture) §第1层:用户界面GUI-表示层-- ...

  3. Android学习之仿QQ側滑功能的实现

    如今项目越来越多的应用了滑动删除的功能,Android本来遵循的是长按删除,IOS定制的是滑动删除,不可否认滑动删除确实在客户体验上要好一点,所以看了非常多关于仿QQ滑动删除的样例,还是感觉代码家的A ...

  4. 大话设计模式宏观总结——创建型&amp;结构型&amp;行为型

    师傅验收项目的时候.问大话设计模式那三种类型的差别和联系是什么,顿时我傻了眼.由于除了知道这三种类型分别如何称呼以外.从来都没想过为什么这样划分?于是,我便回答:我没想过这个问题.若是从字面上来理解的 ...

  5. CSDN 厦门大学线下编程比赛第一题:求和(同余定理)

    题目意思: 给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和. 输入描写叙述:測试数据有多组,以文件结尾.每行输入a,n(1<=a,n<=1000000). ...

  6. 【POJ 3714】 Raid

    [题目链接] http://poj.org/problem?id=3714 [算法] 分治求平面最近点对 [代码] #include <algorithm> #include <bi ...

  7. 66.extjs 里对getvalue() 和getRawValue()

    转自:https://blog.csdn.net/u014236541/article/details/49663589?locationNum=8

  8. 如何在vue项目中引入阿里巴巴的iconfont图库

    1. 打开 http://www.iconfont.cn/ 2. 选择我们喜欢的图标,点击上面的小车,加入图标库,即右侧的购物车 3.点击购物车,点击下载代码 4.解压下载的文件夹,将文件夹复制到 a ...

  9. jeesite自定义主题

    jeesite cms首页太丑不够逼格,然而国内有很多高大上的皮肤供你选择,那么本文就一步一步教你如何定制自己的CMS站点视图. 1.下载 jeesite 源码,并安装配置成功 2.进入jeesite ...

  10. Mysql 数据库编码问题

    数据库建表后,插入数据,如果数据位汉子,将提示错误:“incorrect string value....”. 解决方法:改变数据库编码 第一种方法:改变database 编码: alter data ...