博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3631 多源最短路
阅读量:4497 次
发布时间:2019-06-08

本文共 2193 字,大约阅读时间需要 7 分钟。

这题就是Floyd变形,只要理解了Floyd算法,题目还是不难的。不过我还是WA了一次,原理是在运行Floyd的时候,误加了两个判断,以为当i,j未被标记的时候,i到j的路径不必更新,其实这是错的,去掉以后就过了。

/*  * hdu3631/win.cpp  * Created on: 2011-9-6  * Author    : ben */ #include 
#include
#include
#include
#include
using namespace std; const int SIZE = 310; const int MAX = 0x7fffffff; int map[SIZE][SIZE]; bool marked[SIZE]; int N, M; void init() {
int i, j, temp; for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
map[i][j] = MAX; } map[i][i] = 0; } for (int k = 0; k < M; k++) {
scanf("%d%d%d", &i, &j, &temp); if (map[i][j] > temp) {
map[i][j] = temp; } } } void Floyd(int k) {
int i, j; for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
if (map[i][k] < map[i][j] - map[k][j]) {
map[i][j] = map[i][k] + map[k][j]; } } } } void work() {
int T = 0, op, a, b, Q; while (scanf("%d%d%d", &N, &M, &Q) == 3) {
if (N == 0 && M == 0 && Q == 0) {
break; } if (T > 0) {
putchar('\n'); } printf("Case %d:\n", ++T); init(); memset(marked, false, sizeof(marked)); for (int i = 0; i < Q; i++) {
scanf("%d", &op); if (op == 0) {
scanf("%d", &a); if (marked[a]) {
printf("ERROR! At point %d\n", a); } else {
marked[a] = true; Floyd(a); } } else {
scanf("%d%d", &a, &b); if (marked[a] && marked[b]) {
if (map[a][b] == 0x7fffffff) {
puts("No such path"); } else {
printf("%d\n", map[a][b]); } } else {
printf("ERROR! At path %d to %d\n", a, b); } } } } } int main() {
#ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); #endif work(); return 0; }

转载于:https://www.cnblogs.com/moonbay/archive/2011/09/06/2168362.html

你可能感兴趣的文章
一种让谷歌搜索引擎拒绝搜索的字符串
查看>>
实现毛玻璃效果
查看>>
[BZOJ4082][Wf2014]Surveillance[倍增]
查看>>
kill -9杀掉nginx主进程、reload失败解决办法
查看>>
objdump 用法
查看>>
前端js模糊搜索(模糊查询)
查看>>
Chrome的hack写法以及CSS的支持程度图示
查看>>
苹果端手机微信页面长按图片无法保存的解决方案
查看>>
SVN、GIT比较
查看>>
asp后台读id设置样式
查看>>
POJ 3744 Scout YYF I 概率DP+矩阵快速幂 好题
查看>>
Training Logisches Denken
查看>>
谁分配谁释放
查看>>
正则表达式
查看>>
Java集合之LinkedHashSet源码分析
查看>>
David Silver强化学习Lecture1:强化学习简介
查看>>
开源项目
查看>>
unix系统内核优点
查看>>
协议(五)-从电报机到智能手机
查看>>
Solr学习
查看>>