ZCMU—1676
来源:互联网 发布:网络拓扑设计文档 编辑:程序博客网 时间:2024/06/05 03:36
1676: 回城加血
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 116 Solved: 19
[Submit][Status][Web Board]
Description
最近卡斯丁狗爱上了‘我的世界’ 这个游戏,一直在里面挖矿,种地,养牛,造铁轨等,还经常邀请double x,ayer等很多基友去他的世界玩。这一天。他们发现了一大片树林,然后忍不住的去开始砍,但是砍着砍着天都黑了,正如你所知,黑夜是那么的口怕,关键是他们出来砍树为了节省背包,没有带床,只好自己回家睡觉。卡斯丁狗 想知道有几个人不比他晚到家。他们砍树的区域是n*m的矩形,‘S'表示卡斯丁狗的位置,’E‘表示家的位置,’.‘表示是可以走的平地,'T'表示是树,不能走,数字x表示的是那个位置有x个卡斯丁狗的基友。(当然数字位置也是可以走的,某点可以到达与他有边相连的位置)
Input
一行 n,m.接下来是n*m的图.(n,m<=1000)
Output
输出一个数,表示不比卡斯丁狗晚到家的基友数
Sample Input
5 7
000E0T3
T0TT0T0
010T0T0
2T0T0T0
0T0S000
1 4
SE23
000E0T3
T0TT0T0
010T0T0
2T0T0T0
0T0S000
1 4
SE23
Sample Output
3
2
【分析】
反过来搜家到每个点的距离,然后遍历一边地图看有多少个有人的点并且距离比S远....
基本的bfs
【代码】
2
【分析】
反过来搜家到每个点的距离,然后遍历一边地图看有多少个有人的点并且距离比S远....
基本的bfs
【代码】
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <queue>using namespace std; struct xx{ int x,y;}now,start,go; int dis[1010][1010];int vis[1010][1010];char a[1010][1010];int dx[10]={1,-1,0,0};int dy[10]={0,0,1,-1};int n,m,ex,ey; void bfs(){ queue<xx> q; memset(dis,0,sizeof(dis)); memset(vis,0,sizeof(vis)); q.push(start); vis[start.x][start.y]=1; dis[start.x][start.y]=0; while (!q.empty()) { now=q.front(); q.pop(); for (int i=0;i<4;i++) { go.x=now.x+dx[i]; go.y=now.y+dy[i]; if (go.x>=0&&go.x<n&&go.y>=0&&go.y<m&&vis[go.x][go.y]==0&&a[go.x][go.y]!='T') { q.push(go); vis[go.x][go.y]=1; dis[go.x][go.y]=dis[now.x][now.y]+1; } } }} int main(){ while (~scanf("%d%d",&n,&m)) { for (int i=0;i<n;i++) { scanf("%s",a[i]); for (int j=0;j<m;j++) if (a[i][j]=='E') { start.x=i; start.y=j; } else if (a[i][j]=='S') { ex=i; ey=j; } } bfs(); /*printf("%d %d\n",start.x,start.y); for (int i=0;i<n;i++) { for (int j=0;j<m;j++) printf("%d",dis[i][j]); puts(""); } */ int ans=0; for (int i=0;i<n;i++) for (int j=0;j<m;j++) if (a[i][j]>'0'&&a[i][j]<='9'&&dis[i][j]<=dis[ex][ey]&&dis[i][j]!=0) ans+=a[i][j]-48; printf("%d\n",ans); } return 0; }
0 0
- ZCMU—1676
- ZCMU—1678
- ZCMU—1605
- ZCMU—1067
- ZCMU—1607
- ZCMU—1069
- ZCMU—1611
- ZCMU—1606
- ZCMU—1774
- ZCMU—1766
- ZCMU—1752
- ZCMU—1724
- ZCMU—1623
- ZCMU—1689
- ZCMU—1667
- ZCMU—1639
- ZCMU—1668
- ZCMU—1540
- Java学习之字节流及字节高效流
- 对数据结构一点一小小的理解(二)——算法分析部分
- 熔断器设计模式
- C/C++_log2000_windows编程之第一个控制台程序项目part2
- java根据出生日期和当前时间计算年龄
- ZCMU—1676
- MyBatis中<resultMap>的<association>和<collection>标签的使用
- python3 二叉树遍历
- Hadoop项目实战-用户行为分析之编码实践
- 定时删除归档日志shell
- Android注解框架
- HTML5 Boilerplate
- 【安卓随笔】轻度自虐之使用CMake开发NDK(案例:YUV转RGB)
- 说说 JavaScript 的选择符 API