博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【习题 6-5 UVA-1600】Patrol Robot
阅读量:5095 次
发布时间:2019-06-13

本文共 1845 字,大约阅读时间需要 6 分钟。

【链接】

【题意】

在这里输入题意

【题解】

设dis[x][y][z]表示到(x,y)连续走了z个墙的最短路
bfs一下就ok

【代码】

/*    1.Shoud it use long long ?    2.Have you ever test several sample(at least therr) yourself?    3.Can you promise that the solution is right? At least,the main ideal    4.use the puts("") or putchar() or printf and such things?    5.init the used array or any value?    6.use error MAX_VALUE?    7.use scanf instead of cin/cout?*/#include 
using namespace std;const int N = 20;int dx[4] = {0,0,1,-1};int dy[4] = {1,-1,0,0};int k,n,m;int a[N+10][N+10],dis[N+10][N+10][N+10];queue
> > dl;int main(){ #ifdef LOCAL_DEFINE freopen("F:\\c++source\\rush_in.txt", "r", stdin); #endif ios::sync_with_stdio(0),cin.tie(0); int T; cin >> T; while (T--){ cin >> n >> m; cin >> k; for (int i = 1;i <= n;i++) for (int j = 1;j <= m;j++) cin >> a[i][j]; memset(dis,255,sizeof dis); dis[1][1][0] = 0; dl.push(make_pair(1,make_pair(1,0))); while (!dl.empty()){ pair
> temp = dl.front(); int x = temp.first,y = temp.second.first,num = temp.second.second; dl.pop(); for (int i = 0;i < 4;i++){ int tx = x+dx[i],ty = y + dy[i]; if (tx >=1 && tx <= n && ty >=1 && ty <= m){ if (a[tx][ty]){ int num1 = num+1; if (num1 <= k){ if (dis[tx][ty][num1]==-1){ dis[tx][ty][num1] = dis[x][y][num] + 1; dl.push(make_pair(tx,make_pair(ty,num1))); } } }else{ int num1 = 0; if (dis[tx][ty][num1]==-1){ dis[tx][ty][num1] = dis[x][y][num] + 1; dl.push(make_pair(tx,make_pair(ty,num1))); } } } } } int ans = -1; for (int i = 0;i <= k;i++) if (dis[n][m][i]!=-1){ if (ans==-1){ ans = dis[n][m][i]; }else{ ans = min(ans,dis[n][m][i]); } } cout << ans << endl; } return 0;}

转载于:https://www.cnblogs.com/AWCXV/p/7875307.html

你可能感兴趣的文章
HDU 4635 Strongly connected
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
(旧笔记搬家)struts.xml中单独页面跳转的配置
查看>>
不定期周末福利:数据结构与算法学习书单
查看>>
strlen函数
查看>>
关于TFS2010使用常见问题
查看>>
URL编码与解码
查看>>
Eclipse 安装SVN插件
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
生活大爆炸之何为光速
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>