数据结构编程,急!

来源:百度知道 编辑:UC知道 时间:2024/06/18 13:55:33
距离之和最小问题
【问题描述】
小明正在玩《文明III》游戏,现在他有n个洲际导弹(简称ICBM)。他需要在最短的时间内,用这n个ICBM摧毁敌方n个目标(1个ICBM只能摧毁1个目标)。n个ICBM和目标的位置不一定相同,小明觉得给每个ICBM确定目标是一件很麻烦的事情。请你编程帮助小明给每个ICBM确定目标,使每个ICBM到其目标的距离之和最小。

输入:
第一行:n (n<=12)
第2到n+1行:x,y
说明:每一行包含一个坐标(x,y),表示一个ICBM,-10000<x,y<10000,且x,y为整数。
第n+2到2n+1行:x,y
说明:每一行包含一个坐标(x,y),表示一个目标,-10000<x,y<10000,且x,y为整数。

输出:
仅一行:min
说明:min是每个ICBM到其目标距离之和的最小值。结果保留3位小数。

sample input:
2
1 1
-1 -1
-2 -2
2 2

sample output:
2.828
要代码,本人编程白痴,说了思路也不懂,应付实验而已

数据结构与算法基本程序目录
一、 线性表及其操作
1、 尾插法建立一个单链表,并按顺序输出
2、 单链表的元素查找,按内容查找
3、 元素插入操作
4、 按内容元素删除操作
5、 按位置删除元素
6、 建立双向链表
7、 单链表就地逆置
8、 约瑟夫环问题
二、 栈及其操作
1、 建立堆栈
2、 进栈与出栈
3、 栈的应用,括号匹配
三、 队及其操作
1、 链队列的建立
2、 入队和出队
3、 循环队列建立
4、 循环队列的入队和出队操作
四、 串及其操作
1、 串的朴素匹配
五、 树(二叉树)及其操作
1、 二叉排序树
2、 哈夫曼编码
六、 排序
1、 冒泡排序
2、 直接选择排序法

一、线性表及其操作

//All copyright are preserved by cobby
/*尾插法建立一个单链表,并按顺序输出*/

#define NULL 0 /*宏定义*/
typedef struct node /*定义结点类型的数据结构*/
{
char c; /*数据域,类型为字符型*/
struct node *next; /*指针域,类型为本结构体类型*/
}*L; /*类型重定义,即Node和*L和struct node等价*/

main()
{
L l,p,q; /*用指针类型定义三个结点类型的指针*/
char ch;
l=(L)malloc(sizeof(L)); /*分配内存空间*/
l-