2010级数据结构课程设计任务书
数据结构课程设计任务书

《数据结构》课程设计任务书一、设计题目1、约瑟夫环2、集合的并、交和差运算3、一元稀疏多项式计算器4、停车场管理5、车厢调度6、文学研究助手7、哈夫曼编/译码器8、图遍历的演示9、最小生成树问题10、哈希表设计二、设计目的数据结构课程设计是计算机专业的集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。
其目的在于加深对数据结构的理解和掌握,使学生更好地掌握数据结构的特点、存储表示、运算方法及其应用,训练学生选用合适的数据结构编写质量高、风格好的应用程序的能力。
三、设计任务每班每人按照学号的顺序依次选择1-10号设计题目,独立完成课题。
(即1、11、21号学生完成1号课题,2、12、22号学生完成2号题,以此类推)四、时间安排五、设计内容1. 约瑟夫环【问题描述】约瑟夫(Joseph) 问题的一种描述是:编号为1,2,… ,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
试设计一个程序求出出列顺序。
【基本要求】利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
【测试数据】m的初值为20;n=7,7 个人的密码依次为:3,1,7,2,4,8,4,首先m值为6( 正确的出列顺序应为6,1,4,7,2,3,5) 。
【实现提示】程序运行后,首先要求用户指定初始报数上限值,然后读取各人的密码。
可设n≤30。
此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。
【选作内容】向上述程序中添加在顺序结构上实现的部分。
2. 集合的并、交和差运算【问题描述】编制一个能演示执行集合的并、交和差运算的程序。
【基本要求】(1) 集合的元素限定为小写字母字符[‘a’..’z’] 。
数据结构-课程设计任务书for2010

voidsearch_no(airplane ap[]) {//按航班号查询
charno1[20];
intflag = 1;//判断是否查询到航班,1为未查询到,0为查询到
printf("请输入要进行查询的航班号: ");
scanf("%s",&no1);
for(inti=0; i<size; i++) {
scanf("%d:%d",&ap[i].start_time.hour,&ap[i].start_time.min);
printf("请输入到达时间(例:08:08): ");
scanf("%d:%d",&ap[i].fianl_time.hour,&ap[i].fianl_time.min);
printf("请输入飞机机型: ");
printf("请输入航班号: ");
scanf("%s",&ap[i].no);
printf("请输入起点站: ");
scanf("%s",&ap[i].start);
printf("请输入终点站: ");
scanf("%s",&ap[i].final);
printf("请输入起飞时间(例:08:08): ");
intflag = 1;
printf("请输入要进行查询的起点站: ");
scanf("%s",&start1);
数据结构课程设计

“数据结构”课程设计报告二叉排序树的查找与性能分析学生姓名:段晓宣,张静指导教师:陈少军所在系:电子信息系所学专业:计算机科学与技术年级: 2010级计算机(1)班目录第一章需求分析1.1选题要求 (3)1.2选题的背景与意义 (3)1.3本组课程设计的目标 (3)1.4人员组成和分工 (3)第2章概要分析 (4)2.1系统数据流图 (4)2.2原始数据 (4)2.3输出数据 (4)2.4对数据的处理 (5)2.5数据结构 (5)2.6模块划分 (5)第3章详细设计 (6)3.1二叉排序树的创建 (6)3.2二叉排序树的插入 (7)3.3二叉排序树的查找 (7)3.4计算多数据的平均查找长度 (9)3.5主函数 (9)第4章用户手册 (10)4.1 用户须知 (10)第5章系统测试 (11)项目总结 (12)参考文献 (13)二叉树排序树的查找与性能分析摘要:21世纪是信息化的时代,计算机深入到生活的各个领域。
随着计算机的发展,许多高科技产品如雨后春笋应运而生。
但究其本质而言,无非是以前的理论加以包装。
对于数据控制、管理及处理等方面也可见一斑。
在如今应用的计算机的数据存储方式仍然主要以线性,树型,图型等为主要的及结构。
因此了解并掌握数据结构的知识是很有必要的。
在此次实训期间,本组人员通过运用所学数据结构的知识,进行以二叉排序树的查找与性能分析为题的课程设计,在同组人员的共同努力下,基本实现了:1.创建二叉排序树2.利用文件存储二叉排序树3.二叉排序树的插入4.二叉排序树的查找5.二叉排序树平均查找长度的算法第1章需求分析1.1选题要求(1)根据输入的先序及递归建立二叉排序树;(2)通过文件,向二叉排序树插入结点,并生成二叉树;(3)设置报名号为关键字,可以根据关键字进行查找;(5)查找的同时可以判断比较的次数;(6)根据查找的算法计算出10000个数据平均查找长度;1.2选题的背景与意义(1)树型存储结构数据存储结构中重要的组成部分,二叉树由是树的重点。
数据结构课程设计之奇数魔方阵

长沙理工大学《数据结构》课程设计报告田晓辉学院计算机与通信工程专业计算机科学与技术班级计08-01 学号************学生姓名田晓辉指导教师陈倩诒课程成绩完成日期2010年7月10日课程设计成绩评定学院计算机与通信工程专业计算机科学与技术班级计08-01学号200850080110 学生姓名田晓辉指导教师陈倩诒完成日期2010年7月10日指导教师对学生在课程设计中的评价指导教师对课程设计的评定意见课程设计任务书计算机与通信工程学院计算机科学技术专业用C语言解决魔方阵的问题学生姓名:田晓辉指导老师:陈倩诒摘要本课程设计主要解决设计一个n×n的矩阵中填入1到n2的数字(n为奇数),使得每一行、每一列、每条对角线的累加和都相等的问题。
在课程设计中,系统开发平台为Windows 7,程序设计语言采用Visual C++6.0,程序运行平台为Windows 98/2000/XP/7。
在程序设计中,采用了C 语言结构化程序设计思想和过程设计方法,以功能函数为基本结构,对问题中的要求做出了准确的实现。
程序通过调试运行,初步实现了设计目标。
关键词程序设计;C++6.0;结构化;过程设计;功能函数目录1.引言 (1)1.1课程设计目的 (1)1.2课程设计内容 (1)2.设计思路与方案 (2)3.详细实现 (3)3.1数据结构与数据存储表示 (3)3.2功能函数 (3)3.3函数逻辑功能调用图 (5)3.4本程序执行流程图 (6)4.运行环境与结果 (7)4.1程序运行环境 (7)4.2程序运行结果 (7)5.结束语 (9)参考文献 (10)附录源程序代码 (11)1 引言本课程设计主要解决设计一个n×n的方阵中填入1到n2(n为奇数)的数字,使得每一行、每一列、每条对角线上各个数字累加的和都相等的问题。
1.1 课程设计目的通过这次课程设计进一步了解了二维数组的使用方法和一些基本的设计思路。
数据结构课程设计任务书

《数据结构》课程设计任务书课程设计时间:2009-2010学年第一学期指导老师:刘惠临班级: 计算机08-5 一、课程设计的目的数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:⏹了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;⏹初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;⏹提高综合运用所学的理论知识和方法独立分析和解决问题的能力;⏹训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求b)概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。
c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
《数据结构》课程设计任务书

《数据结构》课程设计任务书《数据结构》课程设计任务说明一、题目及选题规定1、课程设计题目1)航空客运订票系统2)用二叉树实现家谱的相关运算3)电话客户服务模拟2、选题规定数据结构课程设计需独立完成1个选题内容。
1)~3)选题中任选一个。
二、课程设计进度安排1.问题分析和任务定义(3学时)内容:根据设计题目的要求,充分分析和理解问题,明确问题要求做什么(不是怎么做?),限制条件是什么。
要求:掌握问题分析的方法,以无歧义的陈述说明程序设计的任务;了解以用例图来明确系统功能的方法。
重难点:以无歧义的陈述说明程序设计的任务;对问题作透彻分析,避免出现需求分析错误。
说明:本阶段是解决“做什么”的问题,就是要全面理解用户的各项要求,并准确表达所接受的用户需求。
2.逻辑设计和数据结构的选择(3学时)内容:为操作对象定义相应的数据结构,以结构化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。
要求:掌握逻辑设计和数据结构选择的方法。
重难点:逻辑设计和数据结构选择。
说明:本阶段的主要任务是把需求分析得到得数据流图转换为软件结构和数据结构。
设计软件结构的具体任务是:将一个负责系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。
数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。
总体设计建立的是目标系统的逻辑模型,与计算机无关。
3.详细设计和编码(5个学时)内容:算法的具体描述和代码的书写要求:掌握在逻辑设计基础上作详细设计的方法把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚。
重难点:在逻辑设计基础上作详细设计并编码实现。
说明:本阶段主要任务是设计每个模块的实现算法、所需的局部数据结构。
详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
4.上机调试(4个学时)内容:源程序的输入和代码的调试要求:能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
《数据结构》课程设计任务书

《数据结构》课程设计任务书一、课程设计教学目的及基本要求1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;5. 独立完成或分组完成;6. 题材不限,或从参考题目中任选一题;7. 仅限用C语言编写程序;8. 7月3日前完成。
9./jsjxy/jpkc/中课程资源有五份课程设计样例,格式可以参照,不能抄袭!10.允许分小组完成,每组最多3人组成,每人分别都要提交自己的课程设计报告,并填写附录文件“09软工数据结构课程设计分组情况.xls”。
11.同一个题目不能超过6个小组选作,“整个专业分组表”请2个班班长一起汇总,6月15日前发我信箱huangsix@。
12.每个同学设计报告命名“学号姓名.doc”,7月3日前“按班级”打一个压缩包发我信箱。
二、课程设计步骤1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。
自-《数据结构》课程设计任务书 10-11-2

南京工程学院
课程设计任务书
课程名称数据结构
院(系、部、中心) 计算机工程学院
专业计算机科学与技术班级
起止日期
指导教师叶核亚
1、叶核亚编著.数据结构(C++版)(第2版). 北京:电子工业出版社,2009
2、严蔚敏等编著. 数据结构及应用算法教程. 北京:清华大学出版社,2001
3、殷人昆等编著.数据结构(用面向对象方法与C++描述)(第2版). 北京:清华
大学出版社,2007
4、张乃孝编著. 算法与数据结构——C语言描述(第2版).北京:高等教育出版
社,2002
5、许卓群等. 数据结构与算法.北京:高等教育出版社,2004
5.课程设计进度安排
起止日期工作内容
设计前二周设计周,周一周二~周四周五
设计周之后教师提出课题范围及要求,学生查阅资料,确定选题。
学生写程序草稿、运行。
教师审查验收;学生修改并完善程序,测试多种运行结果。
学生撰写设计报告。
教师验证学生程序,批改设计报告。
6.成绩考核办法
根据程序功能、运行情况和课程设计报告为依据进行考核。
成绩按分优、良、中、及格和不及格五级计分,或百分制计分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与工程学院2010级数据结构课程设计任务指导书湖南科技大学计算机学院陈燕晖编2011年8月相关事项说明一:每人独立完成,不允许抄袭。
二:遵循机房管理条例。
三:在机房只能做与课程设计相关的事情,玩游戏、浏览无关网页等情况指导教师可给出本次课程设计不合格的处理。
四:课程设计结束后及时提交课程设计报告,报告格式见数据结构习题集p83。
五:本次课程设计题目提交网址http://125.221.232.254/acmhome,每位同学必须在网站注册,User Name 必须使用学号,Nickname必须写上班级和真实姓名。
六:时间安排如下,其中第一周星期一下午为讲解时间,具体安排:讲解地点:逸夫楼108讲解时间:14:30-15:50 网络、信息安全专业16:00-17:20 计算机科学与技术专业第一周星期二正式开始上机。
第二周星期五为测试时间。
实验时间:上午8:00-11:30;下午14:30-18:0011-12-1学期数据结构课程设计安排表地点:逸夫楼二楼目录A 交集 (1)B. 无所遁形 (2)C 车站调度 (4)D 简单表达式求值 (6)E. 二叉树遍历 (7)F赫夫曼编码 (8)G 二叉排序树 (9)H 查找 (10)I 自来水管道 (11)J 最小时间 (13)K Repairing a Road (14)A 交集题目描述有两个相等长度的正整数序列A和B,都是有序的(递增排序),同时一个序列中没有重复元素,现在需要求这两个序列的交——序列C,同时打印输出。
输入格式每个测试用例一共有2*n+1行,第一行输入为数列的长度n,然后下面2~n+1行,依次输入序列A中的数。
n+2~2*n+1行,依次输入序列B中的数。
其中 1 <= n <= 50000 , 序列中每个数大小不会超过1000000。
当程序输入n为0时表示结束。
输出格式每个测试用例输出一行,先输出序列C的长度,然后依次输出C中的整数,两个数之间间隔一个空格。
注意行末不要出现空格。
C中的整数递增排序。
样例输入51256712469样例输出3 1 2 6B. 无所遁形题目描述在BBS上,有些人可能注册多个ID,其中一个称为主ID,其余的称为马甲。
咱挨踢人都知道,虽然换了马甲,但是IP地址是不变的。
假定每个人的IP是不同的,每个人仅有一个主ID和一个马甲。
通过读取BBS上的帖子,要求找出主ID和对应的马甲。
输入格式每个测试用例的第一行是一个偶数n(0<=n<=20),表示BBS上的帖子数目。
紧接着有n 行信息,每行由两个字符串组成:BBS_ID IP_AddressBBS_ID是发帖人的ID,只包含小写字母,长度不超过12。
每个BBS_ID在每个测试用例中只出现一次。
IP_Address是该人的IP地址,格式为“A.B.C.D”,其中A,B,C,D是0-255范围内的整数。
每一个IP地址正好对应两个BBS_ID,首次出现的ID为主ID,后面出现的为马甲。
当程序输入n为0时表示结束。
输出格式对于每一个测试用例,输出n/2行,每行格式如下:“MJ_ID is the MaJia of main_ID”输出要求按main_ID升序排列。
每一个测试用例后应该输出一个空行。
样例输入8inkfish 192.168.29.24zhi 192.168.29.235magicpig 192.168.50.170pegasus 192.168.29.235iamcs 202.116.77.131finalBob 192.168.29.24tomek 202.116.77.131magicduck 192.168.50.1704mmmmmm 172.16.72.126kkkkkk 192.168.49.161llllll 192.168.49.161nnnnnn 172.16.72.126样例输出tomek is the MaJia of iamcs finalBob is the MaJia of inkfish magicduck is the MaJia of magicpig pegasus is the MaJia of zhillllll is the MaJia of kkkkkk nnnnnn is the MaJia of mmmmmmC 车站调度题目描述有顺序排列的1,2, 3,…,n节车厢在入站口等待调度。
车站设置了一个栈作为缓冲,这样的话只可能进行下列两个操作之一:(1)如果还有车厢在入站口,将最前面的入栈缓冲(2)将栈顶的车厢驶出车站给定一个1至n的排列,问其作为出站系列是否合法。
提示:参见习题集p21 题3.1.输入格式输入包含若干测试用例。
每一个测试用例由多行组成。
第一行是两个整数n(1<=n <= 100)和m,n表示入站系列为1至n。
m表示有随后有m行出站系列。
当n,m均为0时表示输入结束输出格式对应每一个出站系列,合法则输出一行YES,否则输出一行NO。
样例输入3 61 2 31 3 22 1 32 3 13 1 23 2 10 0样例输出YESYESYESYESNOYESD 简单表达式求值题目描述给出简单的表达式,运算符只有加减乘除,运算数是非负整数,计算其值。
输入格式输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。
没有非法表达式。
当一行中只有0时输入结束,相应的结果不要输出。
输出格式对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
样例输入13 - 8 / 4样例输出1.001.00E. 二叉树遍历题目描述对于二叉树T,可以有先序遍历、中序遍历和后序遍历三种遍历方式。
我们知道,任意给定一颗二叉树的两种遍历方式,就可以唯一确定该树。
现在我们要求给出一棵二叉树的先序遍历序列和中序遍历序列,输出它的广度优先遍历序列。
输入格式第一行为一个整数t(0<t<10),表示测试用例个数。
以下t行,每行输入一个测试用例,包含两个字符序列s1和s2,其中s1为一棵二叉树的先序遍历序列,s2为中序遍历序列。
s1和s2之间用一个空格分隔。
序列只包含大写字母,并且每个字母最多只会出现一次。
输出格式为每个测试用例单独一行输出广度优先遍历序列。
样例输入2DBACEGF ABCDEFGBCAD CBAD样例输出DBEACGFBCADF赫夫曼编码题目描述赫夫曼编码能够产生最短的报文。
以报文“ABCDABCDABCABDABAA”为例,A编为0,B对应10,C对应110,D对应111,整体的报文长度为35位二进制。
相比于定长的ASCII码,压缩比达到了18*8/35=4.1。
输入格式输入有一系列的字符串组成,每个字符串占据一行。
字符串仅包含大写字母和下划线。
字符串“END” 表示处理结束,不应对其处理。
输出格式对每一个字符串,输出其ASCII编码的比特位长度,赫夫曼编码的比特位长度,以及二者之比,精确到小数点后一位。
样例输入ABCDABCDABCABDABAAAAAAAAAAAAAAAAAAAAEND样例输出144 35 4.1144 18 8.0G 二叉排序树题目描述N个数可以有N!个排列,每个排列都可以生成一棵二叉排序树。
对于其中任意两个排列,它们生成的二叉排序树可能相同,也可能不同。
现在需要你编程序判断。
输入格式每个测试用例由多行组成。
第一行是一个整数数n,(1<=n<=20) 表示有n个需要判断,如果n= 0表示输入结束。
第二行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉排序树。
接下去的n行有n个序列,每个序列格式和第二行序列一样。
现在以第二行的序列为模板,判断这这n行序列的每一行否能生成与第二行序列一样的二叉排序树。
输出格式如果序列相同则输出YES,否则输出NO样例输入3321546987123456789321564987987654321样例输出NOYESNOH 查找题目描述给定一个集合,查找元素是否在集合中出现。
输入格式每个测试用例由多行组成,第一行是两个整数n和m,两个数范围在1到100000之间。
自第二行起一共有n+m个整数,其中前面n个整数代表集合的元素,随后的m个整数是待查询的数。
所有的整数在范围[-2^31,2^31)内。
输出格式对于每个待查询的数,如果在集合中则输出yes,否则输出no.样例输入5 37 9 3 2 -54 9 -55 3-2 1 0 -2 10 -2 3样例输出noyesyesyesyesnoI 自来水管道题目描述你领到了一个铺设校园内自来水管道的任务。
校园内有若干需要供水的点,每两个供水点可能存在多种铺设路径。
对于每一种铺设路径,其成本是预知的。
任务要求最终铺设的管道保证任意两点可以直接或间接的联通,同时总成本最低。
输入格式每个测试用例由多行组成,第一行是两个整数P和R,P代表供水点数(1<=P<=50),每个点都对应1到P中的一个唯一编号。
R代表可能的铺设路径数,路径数可能有非常多。
接下有R行,每行格式如下:节点A编号节点B编号路径成本路径成本不超过100。
测试用例之间有一空行分开。
输入结束用P=0表示,注意没有R值。
输出格式每个测试用例占用一行输出最低总成本。
样例输入1 02 31 2 372 1 171 2 683 71 2 192 3 113 1 71 3 52 3 893 1 911 2 325 71 2 52 3 72 4 84 5 113 5 101 5 64 2 12样例输出171626J 最小时间题目描述有多个城市组成一个铁路交通网络。
任意两个城市之间有直连铁路,或者通过其他城市间接到达。
给定某个城市,要求min时间内能到达任意指定的另一城市,求最小min。
输入格式每个测试用例由多行组成,第一行是整数n(1 <= n <= 100),表示城市的数目。
其余行表示邻接矩阵A。
A(i,j)的值如果是一个整数t,表示城市i与城市j有铁路直连,需要t时间到达另一方。
如果A(i,j)的值为x,表明城市i与城市j之间没有直连铁路。
很明显有A(i,i) = 0。
由于对称关系和A(i,i) 为0,输入只给出矩阵的下三角。
第一行A(1,1)在输入中省略,第二行只有A(2,1),下一行则是A(3,1) 和A(3,2),依此类推。
输出格式输出城市1所对应的min。
样例输入55030 5100 20 5010 x x 10样例输出35K Repairing a Road题目描述You live in a small town with R bidirectional roads connecting C crossings and you want to go from crossing 1 to crossing C as soon as possible. You can visit other crossings before arriving a t crossing C, but it’s not mandatory.You have exactly one chance to ask your friend to repair exactly one existing road, from the time you leave crossing 1. If he repairs the i-th road for t units of time, the crossing time after that would be viai-t. It's not difficult to see that it takes vi units of time to cross that road if your friend doesn’t repair it.You cannot start to cross the road when your friend is repairing it.输入格式There will be at most 25 test cases. Each test case begins with two integers C and R(2<=C<=100, 1<=R<=500). Each of the next R lines contains two integers x i, y i (1<=x i, y i<=C) and two positive floating-point numbers v i and a i (1<=v i<=20,1<=a i<=5), indicating that there is a bidirectional road connecting crossing x i and y i, with parameters v i and a i (see above). Each pair of crossings can be connected by at most one road. The input is terminated by a test case with C=R=0, you should not process it.输出格式For each test case, print the smallest time it takes to reach crossing C from crossing 1, rounded to 3 digits after decimal point. It’s always possible to reach crossing C from crossing 1.样例输入3 21 2 1.5 1.82 3 2.0 1.52 11 2 2.0 1.80 0样例输出2.5891.976。