hdu 3631
最短路 执行一遍 Floyd算法 比赛的时候没有想到, 用了优化的Dijkstra 超时到死
#include <cstdio>
#include <cstring>
#include <algorithm>
#define INF 1000000000
using namespace std;
int g[310][310];
bool flag[310];
int main()
{
// freopen("d:/in.txt", "r", stdin);
int n, m, k, ca = 1;
while (scanf("%d%d%d", &n, &m, &k) == 3 && n + m + k)
{
if (ca > 1)
puts("");
printf("Case %d:\n", ca++);
memset(flag, false, sizeof(flag));
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (i == j) g[i][j] = 0;
else g[i][j] = INF;
for (int i = 0; i < m; i++)
{
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
if (g[u][v] > w)
g[u][v] = w;
}
for (int i = 0; i < k; i++)
{
int c;
scanf("%d", &c);
if (c)
{
int u, v;
scanf("%d%d", &u, &v);
if (!flag[u] || !flag[v])
printf("ERROR! At path %d to %d\n", u, v);
else if (g[u][v] == INF)
puts("No such path");
else
printf("%d\n", g[u][v]);
}
else
{
int u;
scanf("%d", &u);
if (flag[u])
printf("ERROR! At point %d\n", u);
else
{
flag[u] = true;
for (int j = 0; j < n; j++)
for (int o = 0; o < n; o++)
g[j][o] = min(g[j][o], g[j][u] + g[u][o]);
}
}
}
}
}
hdu 3631的更多相关文章
- hdu 3631 Shortest Path(Floyd)
题目链接:pid=3631" style="font-size:18px">http://acm.hdu.edu.cn/showproblem.php?pid=36 ...
- hdu 3631 Shortest Path
floyd算法好像很奇妙的样子.可以做到每次加入一个点再以这个点为中间点去更新最短路,效率是n*n. #include<cstdio> #include<cstring> #i ...
- HDU - 3631 Shortest Path(Floyd最短路)
Shortest Path Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u SubmitStat ...
- [图论]Floyd 算法小结
Floyd 算法小结 By Wine93 2013.11 1. Floyd算法简介 Floyd算法利用动态规划思想可以求出任意2点间的最短路径,时间复杂度为O(n^3),对于稠密图, 效率要高于执行 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- hdu图论题目分类
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- HDU图论题单
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
随机推荐
- Cocos2d-x实例:设置背景音乐与音效- AppDelegate实现
为了进一步了解背景音乐和音效播放的,我们通过一个实例给大家介绍一下.如下图所示有两个场景:HelloWorld和Setting.在HelloWorld场景点击“游戏设置”菜单可以切换到Setting场 ...
- 老老实实学习WCF[第二篇] 配置wcf
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- 一种好的持久层开发方法——建立BaseDao和BaseDaoImpl
使用hibernate开发持久层时,我们会发现:虽然entity类的含义和需求不同,其对应的Dao层类对应的方法也是不同的.但是有许多方法操作确实相同的.比如实体的增加,删除,修改更新,以及许多常用的 ...
- How to Set Directory Permissions at Install Time using an MSI Created Using Windows Installer XML (WIX)
Original Link: http://blogs.msdn.com/b/cjacks/archive/2008/12/04/how-to-set-directory-permissions-a ...
- windows下redis 开机自启动
1,在redis的目录下执行(执行后就作为windows服务了) redis-server --service-install redis.windows.conf 2,安装好后需要手动启动redis ...
- CCNA第一讲笔记
园区网:一组连续的局域网(校园网.企业内部网) 园区网拓扑: 一层楼的PC连接到一台交换机(同一层的PC可以互联):一栋楼的每层的交换机连接到同一台交换机(整栋楼的PC可以互联):每栋楼的交换机连接到 ...
- Git 安装与使用(二)
一.分支管理 在Git里,master是主分支,同时可以创建其他分支,支持各分支合并到主分支上,基本命令如下 1.创建分支 git checkout -b dev 创建dev分支,并切换到 ...
- 【转】JS函数的定义与调用方法
JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来 ...
- LESS学习总结
之前在工作过程中,用到了Less,一直没有将学习心得整理归纳,今天终于空出时间整理了一下. Less学习常用参考文档: Less 中文网 http://lesscss.cn/ 快速入门 | Les ...
- Asp.net 引用css/js资源文件
注意Page.ResolveUrl之前的双引号,不是单引号 <script type="text/javascript" src="<%= Page.Reso ...