当前位置: 首页 > news >正文

HDU 2722 Here We Go(relians) Again

最短路,建图太麻烦,略过……

#include <cstdio>   
#include <cstring>  
#include <queue>  
const int INF=9999999;  
using namespace std;  
struct node{  
    int v,i;  
    node(int a,int b){v=a,i=b;}  
    bool operator <(const node& a)const{return v>a.v;}  
};  
int n,m,map[500][500];  
int done[500],d[500];  
int dij(){  
    priority_queue q;  
    memset(done,0,sizeof done);  
    for(int i=1;i<=(n+1)*(m+1);i++)d[i]=INF;  
    d[1]=0;  
    q.push(node(d[1],1));  
    while(!q.empty()){  
        node nd=q.top();q.pop();  
        int u=nd.i;  
        if(done[u])continue;  
        done[u]=1;  
        for(int i=1;i<=(n+1)*(m+1);i++){  
            if(d[i]>d[u]+map[u][i]){  
                d[i]=d[u]+map[u][i];      
                q.push(node(d[i],i));  
            }  
        }  
    }  
    if(d[(n+1)*(m+1)]==INF)return -1;  
    else return d[(n+1)*(m+1)];   
}  
int main(){  
    char s[3];int v;  
    while(scanf("%d%d",&n,&m),n||m){  
        for(int i=1;i<=(n+1)*(m+1);i++)for(int j=1;j<=(n+1)*(m+1);j++)map[i][j]=INF;   
        int n1,n2;  
        for(int i=1;i<=2*n+1;i++){  
            if(i%2==1){  
                for(int j=1;j<=m;j++){  
                    n1=(i/2)*(m+1)+j,n2=n1+1;  
                    scanf("%d%s",&v,s);  
                    if(v==0)continue;  
                    if(s[0]=='*')map[n1][n2]=map[n2][n1]=2520/v;  
                    else if(s[0]=='<')map[n2][n1]=2520/v;  
                    else if(s[0]=='>')map[n1][n2]=2520/v;      
                }         
            }else{  
                for(int j=1;j<=m+1;j++){  
                    n1=(i/2-1)*(m+1)+j,n2=n1+m+1;  
                    scanf("%d%s",&v,s);  
                    if(v==0)continue;  
                    if(s[0]=='*')map[n1][n2]=map[n2][n1]=2520/v;  
                    else if(s[0]=='v')map[n1][n2]=2520/v;  
                    else if(s[0]=='^')map[n2][n1]=2520/v;  
                }  
            }  
        }  
        int r=dij();  
        if(r==-1)printf("Holiday\n");  
        else printf("%d blips\n",r);   
    }  
    return 0;     
}  

转载于:https://www.cnblogs.com/forever97/p/3620170.html

相关文章:

  • yii2-queue一个好用的yii2队列操作扩展
  • ppwjs之bootstrap表格:响应式
  • [大牛翻译系列]Hadoop(22)附录D.2 复制连接框架
  • Java大小写转换
  • Transact-SQL语法速查手册
  • 开源地图数据可视化库——mapnik
  • IOS开发常用的linux命令
  • grep/字符/次数匹配/锚定符/小大括号/wc/tr/cut/sort/uniq
  • ajax跨域问题
  • 菜根谭#89
  • Kubernetes上的十大应用程序
  • 开发技巧:高效的使用 Response.Redirect
  • 正则表达式-基础知识Review
  • Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
  • 四则运算1
  • angular2开源库收集
  • CSS3 变换
  • ECS应用管理最佳实践
  • Git同步原始仓库到Fork仓库中
  • IDEA常用插件整理
  • JAVA并发编程--1.基础概念
  • Java读取Properties文件的六种方法
  • java多线程
  • js中forEach回调同异步问题
  • PV统计优化设计
  • vue-router的history模式发布配置
  • Vue全家桶实现一个Web App
  • 成为一名优秀的Developer的书单
  • 从tcpdump抓包看TCP/IP协议
  • 回顾2016
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何合理的规划jvm性能调优
  • $.ajax,axios,fetch三种ajax请求的区别
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .bat批处理出现中文乱码的情况
  • .Net Core与存储过程(一)
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net 程序发生了一个不可捕获的异常
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .Net6使用WebSocket与前端进行通信
  • .net快速开发框架源码分享
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @media screen 针对不同移动设备
  • @RestController注解的使用
  • [.NET]桃源网络硬盘 v7.4