CODE[VS]1024 一塔湖图

题目:http://codevs.cn/problem/1024/
思路:根据数据建立燕园路口连接矩阵,然后用floyd算法求解最有路径。题目,数据5有误,t与k数据颠倒即可得到答案92。
题解:

/* 1024 一塔湖图 */
#include <stdio.h>

#define DEBUG

#define MAXN 11             /* 最大面积 */
#define MAXT 101            /* 最多道路 */
#define MAXTIME 1000000     /* 最长时间 */

#define IMPOS -1            /* 无法通行标志 */

/* 方向定义 */
#define NORTH 0
#define SOUTH 1
#define WEST  2
#define EAST  3

/* 方向相对坐标 */
int posx[4]={
  0,0,-1,1};
int posy[4]={-1,1,0,0};

/* 湖泊结构体,边界(x1,y1), (x2,y2) */ 
struct _lake{
    int x1, y1, x2, y2;
}lake[MAXN];
/* 无法通行道路结构体 */
struct _traffic{
    int x1, y1;
    int x2, y2;
}traffic[MAXT]; 
/* 十字路口结构体 */
typedef struct _crossing{
    int x;
    int y;
}crossing; 

int n, m, t, k;                     /* 燕园尺寸n*m,无法通行道路数t,湖数k */
int an[MAXN], bm[MAXN];             /* 纵,横通行时间 */ 
crossing a, b;                      /* 起点位置,图书馆位置 */ 
int roads[MAXN][MAXN][MAXN][MAXN];  /* 燕园道路图 */ 

crossing queue[MAXT];   /* floyd操作队列 */ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值