题目:http://poj.org/problem?id=1135

先在图中跑一遍最短路,最后倒的牌可能是dis值最大的点,也可能是在dis值最大的点所连的边上,尝试一下即可;

坑:n=1的时候输出点1。

代码如下:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<queue>
  5. using namespace std;
  6. queue<int>q;
  7. int n,m,head[],ct,dis[],t;
  8. double ans;
  9. bool in[];
  10. struct N{
  11. int to,next,w;
  12. N(int t=,int n=,int o=):to(t),next(n),w(o) {}
  13. }edge[];
  14. int main()
  15. {
  16. while(scanf("%d%d",&n,&m)==)
  17. {
  18. t++;
  19. if(!n&&!m)return ;
  20. ct=;
  21. memset(head,,sizeof head);
  22. memset(dis,,sizeof dis);
  23. memset(in,,sizeof in);
  24. for(int i=;i<=m;i++)
  25. {
  26. int x,y,z;
  27. scanf("%d%d%d",&x,&y,&z);
  28. edge[++ct]=N(y,head[x],z);head[x]=ct;
  29. edge[++ct]=N(x,head[y],z);head[y]=ct;
  30. }
  31. while(q.size())q.pop();
  32. dis[]=;q.push();in[]=;
  33. while(q.size())
  34. {
  35. int x=q.front();q.pop();
  36. in[x]=;
  37. for(int i=head[x];i;i=edge[i].next)
  38. {
  39. int u=edge[i].to;
  40. if(dis[x]+edge[i].w<dis[u])
  41. {
  42. dis[u]=dis[x]+edge[i].w;
  43. if(!in[u])in[u]=,q.push(u);
  44. }
  45. }
  46. }
  47. int k=,dk=;ans=;
  48. for(int i=;i<=n;i++)
  49. if(dis[i]>=ans)//>=以处理n=1的情况
  50. {
  51. ans=dis[i];
  52. k=i;
  53. }
  54. for(int i=head[k];i;i=edge[i].next)
  55. {
  56. int u=edge[i].to;
  57. if(dis[u]+edge[i].w>dis[k]&&ans<1.0*(edge[i].w-dis[k]+dis[u])/+dis[k])
  58. ans=1.0*(edge[i].w-dis[k]+dis[u])/+dis[k],dk=u;
  59. }
  60. printf("System #%d \n",t);
  61. if(dk>k)swap(dk,k);
  62. if(ans==dis[k])
  63. printf("The last domino falls after %.1lf seconds, at key domino %d.\n",ans,k);
  64. else
  65. printf("The last domino falls after %.1lf seconds, between key dominoes %d and %d.\n",ans,dk,k);
  66. printf("\n");
  67. }
  68. return ;
  69. }

poj1135Domino Effect——最短路的更多相关文章

  1. 【转】最短路&差分约束题集

    转自:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548 A strange lift基础最短路(或bfs)★254 ...

  2. 转载 - 最短路&差分约束题集

    出处:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548    A strange lift基础最短路(或bfs)★ ...

  3. 最短路&查分约束

    [HDU] 1548 A strange lift 根蒂根基最短路(或bfs)★ 2544 最短路 根蒂根基最短路★ 3790 最短路径题目 根蒂根基最短路★ 2066 一小我的观光 根蒂根基最短路( ...

  4. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  5. 【HDOJ图论题集】【转】

    =============================以下是最小生成树+并查集====================================== [HDU] How Many Table ...

  6. 图论常用算法之一 POJ图论题集【转载】

    POJ图论分类[转] 一个很不错的图论分类,非常感谢原版的作者!!!在这里分享给大家,爱好图论的ACMer不寂寞了... (很抱歉没有找到此题集整理的原创作者,感谢知情的朋友给个原创链接) POJ:h ...

  7. hdu图论题目分类

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  8. HDU图论题单

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  9. [ACM_图论] Domino Effect (POJ1135 Dijkstra算法 SSSP 单源最短路算法 中等 模板)

    Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...

随机推荐

  1. 开源监控软件ganglia

    开源监控软件ganglia安装手册 Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等 ...

  2. 最简单的PHP开发环境搭建

    近期发现一个非常easy的,适合刚開始学习的人的PHP开发环境,整个环境仅仅有三样东东,PHP ,APACHE , MYSQL可是对于初学PHP的人来说,己经足够了. 假设有兴趣的话能够直接去百度PN ...

  3. nstall-Package : 无法找到程序包“MySql.Data.Entity.EF6”

    在vs2013中用MySQL+EF6时,会遇到版本的问题,解决方法一般如下: 1 Install-Package EntityFramework -Version 6.0.0然后Enter2 Inst ...

  4. 使用ZipArchive解压

    本文转载至 http://www.apkbus.com/forum.php?mod=viewthread&tid=131390&extra=page%3D1 qqpk360 该用户从未 ...

  5. iOS界面-仿网易新闻左侧抽屉式交互 续(添加新闻内容页和评论页手势)

     本文转载至  http://blog.csdn.net/totogo2010/article/details/8637430       1.介绍 有的博友看了上篇博文iOS界面-仿网易新闻左侧抽屉 ...

  6. 10个迷惑新手的Cocoa&Objective-c开发问题

    本文转载至  http://blog.csdn.net/lvxiangan/article/details/27964733     language background run­time thre ...

  7. packages/wepy-web/src/wx.js 分析storage 的加载原理 wx.getStorage(OBJECT)

    是小程序实例化后 读入内存 还是每次调用从文件系统读取 https://github.com/Tencent/wepy/blob/bd0003dca2bfb9581134e1b05d4aa1d80fc ...

  8. RocksDB

    RocksDB RocksDB is a high performance[1][2][3][4][5] embedded database for key-value data. It is a f ...

  9. [证书服务器 第二篇] 基于OpenSSL 在 CentOS6 系统上 搭建自签证书服务,并应用于Web容器

    第一部分:概述 .. 第二部分:环境准备 1 操作系统 CentOS 6.x 2 安装openssl yum install -y openssl 3 安装jdk 从官网下载JDK http://ww ...

  10. 【linux】新添加一块硬盘制作LVM卷并进行分区挂载

    linux服务器新添加一块硬盘,可以直接将盘格式化挂载就能用,比如挂载在/usr/local目录,但是这样有一个弊端,就是如果这一块磁盘满了,后续想要扩容的话,不能继续挂载这个/usr/local挂载 ...