最短路  执行一遍 Floyd算法    比赛的时候没有想到, 用了优化的Dijkstra  超时到死

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <algorithm>
  4. #define INF 1000000000
  5. using namespace std;
  6. int g[310][310];
  7. bool flag[310];
  8. int main()
  9. {
  10.     // freopen("d:/in.txt", "r", stdin);
  11.     int n, m, k, ca = 1;
  12.     while (scanf("%d%d%d", &n, &m, &k) == 3 && n + m + k)
  13.     {
  14.         if (ca > 1)
  15.             puts("");
  16.         printf("Case %d:\n", ca++);
  17.         memset(flag, false, sizeof(flag));
  18.         for (int i = 0; i < n; i++)
  19.             for (int j = 0; j < n; j++)
  20.                 if (i == j) g[i][j] = 0;
  21.                 else g[i][j] = INF;
  22.         for (int i = 0; i < m; i++)
  23.         {
  24.             int u, v, w;
  25.             scanf("%d%d%d", &u, &v, &w);
  26.             if (g[u][v] > w)
  27.                 g[u][v] = w;
  28.         }
  29.         for (int i = 0; i < k; i++)
  30.         {
  31.             int c;
  32.             scanf("%d", &c);
  33.             if (c)
  34.             {
  35.                 int u, v;
  36.                 scanf("%d%d", &u, &v);
  37.                 if (!flag[u] || !flag[v])
  38.                     printf("ERROR! At path %d to %d\n", u, v);
  39.                 else if (g[u][v] == INF)
  40.                     puts("No such path");
  41.                 else
  42.                     printf("%d\n", g[u][v]);
  43.             }
  44.             else
  45.             {
  46.                 int u;
  47.                 scanf("%d", &u);
  48.                 if (flag[u])
  49.                     printf("ERROR! At point %d\n", u);
  50.                 else
  51.                 {
  52.                     flag[u] = true;
  53.                     for (int j = 0; j < n; j++)
  54.                         for (int o = 0; o < n; o++)
  55.                             g[j][o] = min(g[j][o], g[j][u] + g[u][o]);
  56.                 }
  57.             }
  58.         }
  59.     }
  60. }

hdu 3631的更多相关文章

  1. hdu 3631 Shortest Path(Floyd)

    题目链接:pid=3631" style="font-size:18px">http://acm.hdu.edu.cn/showproblem.php?pid=36 ...

  2. hdu 3631 Shortest Path

    floyd算法好像很奇妙的样子.可以做到每次加入一个点再以这个点为中间点去更新最短路,效率是n*n. #include<cstdio> #include<cstring> #i ...

  3. HDU - 3631 Shortest Path(Floyd最短路)

    Shortest Path Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u SubmitStat ...

  4. [图论]Floyd 算法小结

    Floyd 算法小结  By Wine93 2013.11 1. Floyd算法简介 Floyd算法利用动态规划思想可以求出任意2点间的最短路径,时间复杂度为O(n^3),对于稠密图, 效率要高于执行 ...

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

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

  6. hdu图论题目分类

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

  7. HDU图论题单

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

  8. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

随机推荐

  1. Jquery EasyUI的datagrid页脚footer使用及数据统计

    最近做一个统计类的项目中遇到datagrid数据显示页脚footer合计的问题,对于构造统计结果数据格式,是在程序端构造一个{"rows":[],"total" ...

  2. 【Android】ADB常用指令与logcat日志(转)

    ADB命令简介 ADB是一个功能强大的命令行工具.通过它可以直接和模拟器或真机进行交互.它是一个具有客户端和服务器端的程序. 它主要由三个部分组成: 客户端,它运行在你的开发机上,你可以通过执行adb ...

  3. Servlet之编码过滤

    创建CharactorFilter类,实现javax.servlet.Filter接口: package com.caiduping; import java.io.IOException; impo ...

  4. 学习Learn Python The Hard Way 前言中的一段话,可与君共勉

    在你通过这本书学习编程时,我正在学习弹吉他.我每天至少训练 2 小时,至少花一个小时练习音阶.和声.和琶音,剩下的时间用来学习音乐理论和歌曲演奏以及训练听力等.有时我一天会花 8 个小时来练习,因为我 ...

  5. 如何找出MySQL数据库中的低效SQL语句

    面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...

  6. .net chart(图表)控件的使用-System.Windows.Forms.DataVisualization.dll

    这个案例指在介绍微软这套免费又功能强大的图表控件Microsoft Chart Controls for Microsoft .NET Framework 3.5,通过它,可让您的项目及报表,轻松套用 ...

  7. java调用peoplesoft提供的webservice接口

    使用到了soapui,apache-cxf,eclipse 1.使用soapui测试提供的地址有效性(如果没有soapui也可以直接在cmd命令行中使用wsdl2java命令生成客户端代码) wsdl ...

  8. 5中方式实现String反转

    这里介绍Java中5中实现String反转的方式. 一.数组实现String反转 //数组实现String反转 public String reverseByArray(){ if(str == nu ...

  9. JDK中工具类的使用

    JDK中内置了很多常用的工具类,且多以“s”结尾,如:集合工具类Collections,数组工具类Arrays,对象工具类Objects,文件工具类Files,路径工具类Paths,数学工具类Math ...

  10. L001-老男孩教育-Python13期VIP视频-19节-pbb

    L001-老男孩教育-Python13期VIP视频-19节-pbb Windows上安装 Python3开发环境 下载:www.python.org >选择Downloads>All re ...