资源简介
假设有一个县医疗救护中心有一些救护车为全县服务,如果这些救护车平时都放置在县城,那么当偏远地区病人需要紧急运往医院时就不能及时到达现场。所以需要在各乡镇及村庄建立紧急医疗救护站,分散放置这些救护车,以便尽可能使得场全县任何地方有病人时可以在20分钟内到达现。假设一个救护站配备一辆救护车,司机随时值班,需要时即可使用。
1. 设救护站可以设在各乡镇及村庄,那么最少需要设置多少救护站可以使得所有人口位于救护车20分钟车程能够覆盖的范围内?给出各救护站位置。如果救护站只能位于乡(镇)所在地,结果怎样?
2. 假设共有10辆救护车,怎样设置救护站的位置可以使得尽可能多的人口位于救护车20分钟车程能够覆盖的范围内?能覆盖所有人口吗?如果不能,多少人不能被覆盖?如果救护车的数量为7辆,再次回答上述问题。
代码片段和文件信息
package xiong;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
/**
* 类详细描述:专门打印最近距离的矩阵,和0-1矩阵
*
* @ClassName TestMainIO
* @author 刘群
* @date 2015-12-30 下午4:28:21
*/
public class Array_Floyd {
/**
* @Fields Length : 数组长度
*/
static int Length = 53;
/**
* @Fields Distance : 判定范围,两城镇之间,大于20即为不覆盖,小于则覆盖
*/
static int Distance = 20;
/**
* @Fields A : 0-1矩阵,可达为1,不可达为0
*/
static int[][] A = new int[Length][Length];
/**
* @Fields point : 类似0-1矩阵,只是值是truefalse
*/
static boolean[][] point = new boolean[Length][Length];
/**
* @Fields nums : 记录每个点可以到达多少个点
*/
public static int[] nums = new int[Length];
/**
* @Fields list : 记录每一条路径的时候所用的
*/
public static List list = new ArrayList();
/**
* 方法简述:main方法
* @param args
*/
public static void main(String[] args) {
Data data = new Data();
data.initGrp();
//从data类中获取数据
double[][] G = data.getGrp();
double[][] Dis = floyd(G Length);
//printG(G Length);
// printG(Dis Length);
// System.out.println(“============================“);
// initA(Dis Length);
initA(G);
printG(A Length);
}
public static int[][] initA(double[][] G) {
char ch = ‘A‘;
for (int i = 0; i < G.length; i++) {
for (int j = 0; j < G[i].length; j++) {
if (G[i][j] != 1000) {
A[i][j] = 1;
}else {
A[i][j] = 0;
//System.out.println(“(“+i+““+j+“)“);
}
}
}
return A;
}
/**
* 方法简述:生成0-1矩阵
* @param G 最近距离的矩阵
* @param n 矩阵的宽度
*/
public static int[][] initA(double[][] G int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (G[i][j] > Distance) {
A[i][j] = 0;
} else {
A[i][j] = 1;
}
}
}
return A;
}
/**
* 方法简述: 初始化nums数组
*/
public static void initNums() {
for (int i = 0; i < nums.length; i++) {
nums[i] = -1;
}
}
/**
* 方法简述:打印数组,调用可以在控制台输出最近距离的那个矩阵
* @param G 数组
* @param n 数组长度
*/
public static void printG(double[][] G int n) {
DecimalFormat df = new DecimalFormat(“#.00“);
for (int i = 0; i < n; i++) {
System.out.print(i + “:“);
for (int j = 0; j < n; j++) {
System.out.print(j+“:“+df.format(G[i][j]) + “ “);
if (j == n-1) {
//System.out.print(“\nG[i][j]“+52 + “\n“);
}
}
System.out.println();
}
}
/**
* 方法简述:打印整型的那个数组,用于打印0-1矩阵
* @param G
* @param n
*/
public static void printG(int[][] G int n) {
char ch = ‘A‘;
int count = 1;
for (int i = 0; i < n; i++) {
int k = 0;
if (i<18) {
System.out.print((ch++)+“:“);
}else {
System.out.print((count++)+“:“);
}
for (int j = 0; j < n; j++) {
System.out.print(G[i][j] + ““);
if (G[i][j] == 1) {
k++;
}
}
System.out.print(“:“+(k));
System.out.println();
}
}
/**
* 方法简述:最短路径的生成
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-05 14:32 xiong\
文件 56589 2016-01-03 22:46 xiong\1.txt
文件 575 2016-01-03 23:43 xiong\2.txt
文件 284 2016-01-05 10:06 xiong\4.txt
文件 3967 2016-01-03 23:30 xiong\Array_Floyd.java
文件 4711 2016-01-03 21:08 xiong\CopyOfArray_Floyd.java
文件 40523 2016-01-03 23:36 xiong\Data.java
文件 5151 2016-01-04 22:44 xiong\Exercise_1.java
文件 6733 2016-01-03 23:37 xiong\Exercise_2.java
文件 5723 2016-01-03 16:32 xiong\Exercise_3.java
文件 5151 2016-01-05 10:00 xiong\Exercise_4.java
文件 1331874 2016-01-05 12:24 xiong\紧急医疗救护站设置问题的题目.zip
- 上一篇:青鸟消防编程软件
- 下一篇:kinect手势追踪
相关资源
- 算法设计技巧与分析中文版.阿苏外耶
- 计算机算法与分析课后习题,期末考
- 计算几何——算法分析与设计第三版
- 2016-2017年和2017-2018年国科大_中科院
- 新编实用算法分析与程序设计竞赛-(
- 机器视觉算法与应用高清双语版且含
- 中科大-算法分析与设计课-课程ppt/考
- 数据结构与算法分析中文第三版
- 算法分析与设计-赵端阳源代码与ppt
- 数据结构与算法分析in C 维斯的详细勘
- 新编实用算法分析与程序设计竞赛-(
- 赵端阳-算法分析与设计-随书PPT.zip
- 西农大算法分析-父子打牌
- 算法分析与设计哈弗曼树问题
- 算法分析论文
- 物流配送中心选址模型及其算法分析
- ACM大学生程序设计竞赛在线题库精选
- 最大团问题的算法分析课程设计
- 算法设计与分析基础期末考试复习总
- cvsd编解码CVSD算法分析及其在FPGA中的
- 数据结构与算法中文版4本
- md4资料--md4算法分析
- 算法分析与设计基础第二版课后答案
- 算法分析与设计教程北大秦明版
- 数据结构与算法分析城市数据库的实
- 哈尔滨工业大学算法分析与设计答案
- 北斗多路径效应算法研究及其分析
- 利用动态规划求木桩游戏
- pixy 算法分析
- 算法分析与设计实验报告
评论
共有 条评论