hdu 3631 Shortest Path
floyd算法好像很奇妙的样子。可以做到每次加入一个点再以这个点为中间点去更新最短路,效率是n*n。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std; const int maxn = ;
const int INF = 0x7FFFFFFF;
int A[maxn][maxn], flag[maxn];
int n, m, q; void floyd(int x)
{
int i, j;
for (i = ; i < n; i++)
{
for (j = ; j < n; j++)
{
if (i == x || j == x) continue;
if (A[i][x] == INF || A[x][j] == INF) continue;
if (A[i][x] + A[x][j] < A[i][j]) A[i][j] = A[i][x] + A[x][j];
}
}
} int main()
{
int i, j, u, v, c, koko = ;
while (~scanf("%d%d%d", &n, &m, &q))
{
if (n == && m == && q == ) break;
memset(flag, , sizeof(flag));
for (i = ; i <= n; i++)
{
for (j = ; j <= n; j++)
{
if (i == j) A[i][j] = ;
else A[i][j] = INF;
}
}
for (i = ; i < m; i++)
{
scanf("%d%d%d", &u, &v, &c);
if (c < A[u][v]) A[u][v] = c;
}
int oo, pp, qq;
if (koko != ) printf("\n");
printf("Case %d:\n", koko++);
for (i = ; i < q; i++)
{
scanf("%d", &oo);
if (oo == )
{
scanf("%d", &pp);
if (flag[pp] == ) printf("ERROR! At point %d\n", pp);
else if (flag[pp] == ){ flag[pp] = ; floyd(pp); }
}
else if (oo == )
{
scanf("%d%d", &pp, &qq);
if (flag[pp] == || flag[qq] == )printf("ERROR! At path %d to %d\n", pp, qq);
else
{
if (A[pp][qq] == INF) printf("No such path\n");
else printf("%d\n", A[pp][qq]);
}
}
}
}
return ;
}
hdu 3631 Shortest Path的更多相关文章
- 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最短路)
Shortest Path Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u SubmitStat ...
- HDU 5636 Shortest Path 暴力
Shortest Path 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5636 Description There is a path graph ...
- HDU 5636 Shortest Path(Floyed,枚举)
Shortest Path Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tot ...
- HDU - 4725_The Shortest Path in Nya Graph
The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- HDU 5636 Shortest Path
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5636 题解: 1.暴力枚举: #include<cmath> #include<c ...
- HDU 5636 Shortest Path 分治+搜索剪枝
题意:bc round 74 分析(官方题解): 你可以选择分类讨论, 但是估计可能会写漏一些地方. 只要抽出新增边的端点作为关键点, 建立一个新图, 然后跑一遍floyd就好了. 复杂度大概O(6^ ...
- HDU 5636 Shortest Path(Floyd)
题目链接 HDU5636 n个点,其中编号相邻的两个点之间都有一条长度为1的边,然后除此之外还有3条长度为1的边. m个询问,每次询问求两个点之前的最短路. 我们把这三条边的6个点两两算最短路, 然 ...
- HDU 4479 Shortest path 带限制最短路
题意:给定一个图,求从1到N的递增边权的最短路. 解法:类似于bellman-ford思想,将所有的边先按照权值排一个序,然后依次将边加入进去更新,每条边只更新一次,为了保证得到的路径是边权递增的,每 ...
随机推荐
- oracle if else 判断
CREATE OR REPLACE FUNCTION fn_GetClassifyBymxmjazfs (v_azfs varchar2,v_mx varchar2,v_mj varchar2) re ...
- Apache的htaccess文件出现500错误的原因
Apache 我平时很少用到,今天测试环境下碰到个问题,老是500错误莫名其妙 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FI ...
- GTK+2.0学习——code::block使用
在之后使用中会慢慢去完善~~ 一.编码设置 1.设置文件编码:setting->editor->如图 2.设置编译时的编码(记住二者要统一):setting->compiler-&g ...
- Maven之(八)约定优于配置
maven的配置文件看似很复杂,其实只需要根据项目的实际背景,设置个别的几个配置项而已.maven有自己的一套默认配置,使用者除非必要,并不需要去修改那些约定内容.这就是所谓的"约定优于配置 ...
- Openjudge-NOI题库-和为给定数
题目描述 Description 给出若干个整数,询问其中是否有一对数的和等于给定的数. 输入输出格式 Input/output 输入格式: 共三行: 第一行是整数n(0 < n <= ...
- 极光推送Demo
<?php //极光推送的类 //文档见:http://docs.jpush.cn/display/dev/Push-API-v3 /***使用示例***/ ...
- php强制下载文件并显示原始文件名
原来一直没有接触过,这几天一直在玩儿文件上传下载的东西.今天又遇到一个坑. 描述:文件上传至服务器后,如果是rar或则其他的非浏览器直接识别的格式,用户点击链接了后是可以直接就被下载下来的.那么如果上 ...
- 《Javascript权威指南》
<Javascript权威指南> chorme.safari中的input或textarea html超链接(a)详细讲解 html5新增及删除标签 html表格 图片加alt属性
- linux for 使用
第一种:命令使用方法 例子1: cat test.txt 1 2 3 for i in $(cat test.txt) do echo $i done 例子2: for i in 1 2 3 4 do ...
- ECOS-LNMP ZendGuard
因为ECOS产品加密后依赖PHP Zendguard运行(基于PHP5.3加密) 备注: Shopex485商城基于php5.2进行加密 URL:http://www.zend.com/en/pro ...