2016年9月ccf
去长沙理工考ccf。恰好又可以见闺蜜。
前2道题很简单,第三题题目太长就跳过了【绕来绕去就像“你儿子是我儿子的爸爸一样头疼”】,就做第四题。但是还有最后一个部分没写写好就到点了。
现在把它补充完整。
我忘记怎么在函数参数中使用二维数组,所以直接把函数写在main里。
分为2个部分,一个是求最短路径,一个是找出要改建的路。
最短路径采用的是dijkstra算法。
寻找要改建的路的部分。我一开始一直想要使用最小支撑树实现【即贪心算法】。但是我后来恍然发现,最后一个状态一定是每个城市都能以最短路径达到首都。那么a城市的最短路径就是与a相邻的某一个城市b的最短路径加上ab城市的距离。
需要说明的是,我没有使用大量数据测试。
仅供参考,如有错误,欢迎指正,共同学习。
1 #include<iostream> 2 #define far 1000 3 using namespace std; 4 int main() 5 { 6 int n,m,i,j,k; 7 int sum=0; 8 int x,y,z; 9 cin>>n>>m; 10 int a[n][n],edge[m]; 11 int visit[n],dis[n]; 12 for(i=0;i<n;i++) 13 { 14 for(j=0;j<n;j++) 15 { 16 a[i][j]=far; 17 } 18 visit[i]=0; 19 dis[i]=far; 20 } 21 for(i=0;i<m;i++) 22 { 23 cin>>x>>y>>z; 24 a[x-1][y-1]=a[y-1][x-1]=z; 25 edge[i]=z; 26 } 27 for(i=0;i<n;i++) 28 { 29 for(j=0;j<n;j++) 30 cout<<a[i][j]<<" "; 31 cout<<endl; 32 } 33 dis[0]=0; 34 int v; 35 for(i=0;i<n;i++) 36 { 37 for(j=0;j<n;j++) 38 { 39 if(visit[j]==0&&dis[j]!=far) 40 v=j; 41 } 42 for(j++;j<n;j++) 43 { 44 if((visit[j]==0)&&(dis[j]<v)) 45 v=j; 46 } 47 visit[v]=1; 48 for(j=0;j<n;j++) 49 { 50 if(dis[j]>dis[v]+a[v][j]) 51 dis[j]=dis[v]+a[v][j]; 52 } 53 54 } 55 for(j=0;j<n;j++) 56 cout<<dis[j]<<" "; 57 cout<<endl; 58 59 60 for(i=0;i<n;i++) 61 visit[i]=0; 62 63 visit[0]=1; 64 for(i=0;i<n;i++) 65 { 66 for(j=0;j<m;j++) 67 { 68 if(edge[j]==dis[i]) 69 { 70 cout<<"改变的边--"<<edge[j]<<endl; 71 sum=sum+edge[j]; 72 edge[j]=0; 73 visit[i]=1; 74 } 75 } 76 } 77 for(i=0;i<n;i++) 78 { 79 if(visit[i]==0) 80 { 81 for(j=0;j<n;j++) 82 { 83 if(dis[j]+a[i][j]==dis[i]) 84 { 85 for(int k=0;k<m;k++) 86 { 87 if(edge[k]==a[i][j]) 88 { 89 cout<<"改变的边--"<<edge[k]<<endl; 90 sum=sum+edge[k]; 91 edge[k]=0; 92 visit[i]=1; 93 break; 94 } 95 } 96 } 97 } 98 } 99 } 100 cout<<endl<<"sum---"<<sum<<endl; 101 cout<<"visit"<<endl; 102 for(i=0;i<n;i++) 103 cout<<visit[i]<<" "; 104 return 0; 105 106 }
View Code
因为没有注释,可能比较难看懂。不懂的地方,也欢迎和我交流。
转载于:https://www.cnblogs.com/zhenzhenhuang/p/5873609.html
2016年9月ccf相关推荐
- 计算机一级判断题2016,2016年12月计算机一级考试WPS判断题及答案
练习做多了自然会形成自己的做题方法和速度,为此,今天百分网小编为大家整理了以下2016年12月计算机一级考试WPS判断题及答案,希望对大家有帮助! 判断题一 1.在Word中,标尺是按一个字符宽度标度 ...
- 2016年3月全球操作系统版本份额:Win10仅次win7
IDC评述网(idcps.com)04月07日报道:根据市场研究公司Net Applications最新数据显示,在2016年3月全球操作系统市场上,Windows的冠军地位不可动摇,份额与上月基本保 ...
- Chrome将于2016年4月终止对Windows XP的支持
近日,Chrome团队技术总监Marc Pawliger在Chrome官方博客中宣布谷歌将于2016年4月份终止Chrome对Windows XP的支持,这比原计划延长了4个月. \\ 除了Windo ...
- linux运维实战练习-2016年3月4日-3月19日课程作业(练习)安排
注:本次作业适用于就业班和套餐班. I.作业(练习)内容: 1.搭建LAMP环境,并实践基于DNS做基于域名的虚拟主机. 2.基于1题目中的环境,重新搭建一个同样的环境,要求: a)实现web服务文件 ...
- 2016年7月微软MVP申请開始了!
2016年7月微软MVP申请開始了! CSDN与微软合作,长期为用户提供申请"微软最有价值专家"的平台.希望有兴趣.资历的朋友以及正在朝这个方向努力的朋友能够积极參与. 2016年 ...
- 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,天津大学《计算机应用基础》2016年12月考试期末大作业考核试题...
请同学及时保存作业,如您在20分钟内不作操作,系统将自动退出. <计算机应用基础>2016年12月考试期末大作业考核试题 试卷总分:100 测试时间:-- 单选题 一.单选题(共50 道试 ...
- 关于微型计算机主板的描述错误的是,2016年9月计算机一级考试试题及答案「单选」...
2016年9月计算机一级考试试题及答案「单选」 在2016年第二次计算机等级考试之际,yjbys小编为同学们准备的是计算机一级考试的模拟试题及答案,希望对大家复习计算机等级考试有所帮助! 计算机一级试 ...
- 薛老师软考高项学员:2016年4月27日作业
薛老师软考高项学员:2016年4月27日作业 1.写全文:论信息系统项目的范围管理 2.写架构:论项目的计划与监控:论项目的进度管理. 转载于:https://blog.51cto.com/xueda ...
- 苏州大学9月计算机考试试题,2016年9月计算机一级考试题及答案
2016年9月计算机一级考试题及答案 1.在Windows环境下,为了终止应用程序的运行,应( ) a. 关闭该应用程序窗口 b. 最小化该应用程序窗口 c. 双击该应用程序窗口的标题栏 d. 将该应 ...
- 2016年9月c语言真题,2016年9月计算机二级C语言基础试题及答案
2016年9月计算机二级C语言基础试题及答案 一.选择题 (1)*作系统主要有两个方面重要作用,下面叙述最恰当的是 A)管理系统的软件和硬件 B)管理*作系统本身和应用系统 C)管理系统中的各种资源并 ...
最新文章
- eclipse异常关闭,无法启动tomcat解决办法
- 移动通信网络中的数字基带
- 项目百态:软件项目管理面面观
- Linux下源码安装CodeBlocks
- 利用matlab对xml文件进行批量处理
- 如何定义和实现一个类的成员函数为回调函数
- 自建K8S迁移镜像、应用至阿里云ACK最佳实践
- mysql的分页怎么不对_jsp+mysql分页显示我的怎么不对啊?显示始终不对!
- QT打印窗口、退出、设置字体及颜色、设置时间、控件实现系统函数、添加资源文件(菜单图片)、工具栏添加图片
- C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解
- 时空解析理论的实验检验方法
- s7200cpu224xp手册_西门子S7-200CPU224XP
- 面试产品经理 应该如何介绍自己的优势和劣势?
- 微信小程序开发工具第一次使用,网络连接不上怎么办
- google新搜索网站
- Final Cut pro快捷键大全
- 分享66个PHP源码,总有一款适合您
- 神经网络(深度学习)入门学习
- hibernate 学习之——hql 语句
- 一团乱麻的长租公寓行业,如何通过科技赋能从逆境中突围而出?
热门文章
- Zilliqa Scilla入门
- 区块链 Fisco bcos 智能合约(18)-FISCO BCOS的速度与激情:性能优化方案最全解密
- kubernetes 查看所有namespace、默认的namespace
- Kubernetes 小白学习笔记(24)--kubernetes的运维-管理Service
- 比特币交易的脚本如何执行
- Unity WIndows语音识别(一)关键字识别
- DEDECMS v5.7 实现导航条下拉二级菜单
- kafka 安装,使用教程
- LayaAir UI 组件 # Clip 切片、ComboBox 下拉框
- MongoDB 通过 Java 代码 批量操作