处理完输入就是很简单的一题  但是输入好难

勉强找到一种能看懂的。。。

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<string>
  4. #include<cstring>
  5. using namespace std;
  6.  
  7. #define MAX 999999999
  8. #define N 501
  9.  
  10. int vis[N],map[N][N],dis[N];
  11. int n,m;
  12.  
  13. int Dijkstra(int start,int end)
  14. {
  15. int i,j,min,loc;
  16.  
  17. memset(vis,,sizeof(vis));
  18. for(i=;i<=end;i++)
  19. dis[i]=map[start][i];
  20. dis[start]=;
  21.  
  22. for(i=;i<=end;i++)
  23. {
  24. min=MAX;
  25. for(j=;j<=end;j++)
  26. {
  27. if(!vis[j]&&dis[j]<min)
  28. {
  29. min=dis[j];
  30. loc=j;
  31. }
  32. }
  33. vis[loc]=;
  34. for(j=;j<=end;j++)
  35. {
  36. if(!vis[j]&&dis[loc]+map[loc][j]<dis[j])
  37. dis[j]=dis[loc]+map[loc][j];
  38. }
  39. }
  40. return dis[end];
  41. }
  42.  
  43. int main()
  44. {
  45. int i,j,ver,hor,d,x,y,d1,d2,ans;
  46. char ch;
  47.  
  48. //freopen("test.txt","r",stdin);
  49. while(scanf("%d%d",&n,&m),n+m)
  50. {
  51. for(i=;i<=(n+)*(m+);i++)//共有(n+1)*(m+1)点
  52. for(j=;j<=(n+)*(m+);j++)
  53. map[i][j]=MAX;
  54.  
  55. ver=;hor=;
  56.  
  57. //若图中2*2的 则是3*3,节点是1-9,map[1][4]代表第一行指第二行的6
  58. for(i=;i<=*n+;i++)
  59. {
  60. for(j=;j<=m+!(i&);j++)//偶数多一个输入
  61. {
  62. scanf("%d %c",&d,&ch);
  63. if(d==)// 如果d为0,表示此路不通
  64. ch=;
  65.  
  66. if(i&)//奇数 横向的路
  67. {
  68. x=j+(m+)*(hor-);
  69. y=x+;//横向的始终是[x][x+1]
  70. d1=(ch=='*'||ch=='>')?/d:MAX;
  71. d2=(ch=='*'||ch=='<')?/d:MAX;
  72. }
  73. else
  74. {
  75. x=j+(m+)*(ver-);//纵向的是[x][x+m+1]
  76. y=j+(m+)*ver;
  77. d1=(ch=='*'||ch=='v')?/d:MAX;
  78. d2=(ch=='*'||ch=='^')?/d:MAX;
  79. }
  80. map[x][y]=d1;
  81. map[y][x]=d2;
  82.  
  83. }
  84. if(i&) hor++; //横向加 1
  85. else ver++;
  86. }
  87. ans=Dijkstra(,(n+)*(m+));//最后点数
  88. if(MAX==ans)
  89. printf("Holiday\n");
  90. else
  91. printf ("%d blips\n",ans);
  92. }
  93. return ;
  94. }

Here We Go(relians) Again HDU2722的更多相关文章

  1. HDU 2722 Here We Go(relians) Again (spfa)

    Here We Go(relians) Again Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/ ...

  2. Here We Go(relians) Again

    Here We Go(relians) Again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...

  3. CSU 1857 Crash and Go(relians)(模拟)

    Crash and Go(relians) [题目链接]Crash and Go(relians) [题目类型]模拟 &题解: 这就是要严格的按照题意说的模拟就好了,也就是:每次添加进来一个圆 ...

  4. hdu 2722 Here We Go(relians) Again (最短路径)

    Here We Go(relians) Again Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  5. 【HDOJ】2722 Here We Go(relians) Again

    根据矩阵建图,然后求最短路径. #include <cstdio> #include <cstring> #include <cstdlib> #define L ...

  6. HDU 2722 Here We Go(relians) Again

    最短路,建图太麻烦,略过…… #include <cstdio> #include <cstring> #include <queue> const int INF ...

  7. HDU 2722 Here We Go(relians) Again (最短路)

    题目链接 Problem Description The Gorelians are a warlike race that travel the universe conquering new wo ...

  8. HDU--2722

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2722 分析:简单最短路,读入数据烦. #include<iostream> #includ ...

  9. POJ 3653 &amp; ZOJ 2935 &amp; HDU 2722 Here We Go(relians) Again(最短路dijstra)

    题目链接: PKU:http://poj.org/problem? id=3653 ZJU:problemId=1934" target="_blank">http ...

随机推荐

  1. 逆向安全基础之IDA使用简介

    转载:http://m.blog.csdn.net/ilnature2008/article/details/54912854 IDA简介 IDA是业界一个功能十分强大的反汇编工具,是安全渗透人员进行 ...

  2. [C++]线性链表之顺序表<二>

    /*   @content 线性链表之顺序表   @date 2017-3-21 1:06   @author Johnny Zen  */ /* 线性表     顺序表     链式表[带头指针/不 ...

  3. 青云VPC网络配置

    1 创建VPC网络 2 申请公网IP 3 回到VPC图形界面绑定公网ip 4 创建私有网络,并绑定私有网络 5 创建3台主机 6 新建防火墙,并绑定到VPC 7 配置VPC端口转发规则 8 添加防火墙 ...

  4. SLAM学习资料汇总

    转自 http://www.cnblogs.com/wenhust/   书籍: 1.必读经典 Thrun S, Burgard W, Fox D. <Probabilistic robotic ...

  5. 允许远程用户登录访问mysql的方法

    需要手动增加可以远程访问数据库的用户. 方法一.本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项 ...

  6. Modelsim SE 破解教程

    第一步:打开我们提供的破解工具包. 第二步:拷贝crack.bat和MentorKG.exe到"C:\modeltech64_10.2c\win64"路径下,如果你的电脑为32位, ...

  7. C++获取当前所有进程的完整路径

    实现代码 #include <stdio.h> #include <windows.h> #include <tlhelp32.h> #include <st ...

  8. 安装python3后使用pip和pip3的区别是什么?

    安装python3后使用pip和pip3的区别是什么? 1.其实这两个命令效果是一样的,没有区别: (1)比如安装库numpy,pip3  install  numpy或者pip  install   ...

  9. FarBox--另类有趣的网站服务【转】

    FarBox--另类有趣的网站服务 转自:http://mosir.org/html/y2012/the-interesting-web-service-serve-by-FarBox.html 作者 ...

  10. MySQL 误操作后数据恢复(update,delete忘加where条件)【转】

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句 写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者 ...