- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简介 图的分类 图的存储 数组模拟邻接表 var n,m,i,j,c:longint; g:array[1..100,1..100] of longint; num:array[1..100] of longint; begin fillchar g,sizeof g ,$7f ; fillchar num,sizeof num ,0 ; for i: 1 to n do begin readln m ; //点i与其他点的连接情况,即与之相连的点的数目 for j: 1 to m do begin read c ; //第j个与i相连的点是c inc num[i] ; //与i相连的点数目加1 g[i][num[i]]: c; //记录下第j个与i相连的点 val[i][c]: 权值; //如果有边权,需记录权值 end; end; …………………………………………………… end. 邻接矩阵 var i,j,k,e:longint; a:array[1..100] of longint; w:real; begin fillchar g,sizeof g ,127 ; readln e ; for k: 1 to e do begin readln i,j,w ; g[i][j]: w; g[j][i]: w; end; ………………………………………… end. 如果是longint数组,采用fillchar(g,sizeof g ,$7f 可全部初始化为maxlongint 使用fillchar g,sizeof g ,0 全部清零 如果是real数组,采用fillchar g,sizeof g ,127 可全部初始化一个很大的数1.38*10^306 使用fillchar(g,sizeof g ,0 全部清零 var a:array[1..100,1..2] of longint; f:array[1..100,1..100] of real; n,i,j,k,x,y,m,s,e:longint; function max a,b:real :real; begin if a b then exit b else exit a ; end; begin assign input,in.in ; reset input ; readln n ; for i: 1 to n do readln a[i][1],a[i][2] ; readln m ; for i: 1 to n do for j: 1 to n do f[i][j]: maxlongint div 3; for i: 1 to m do begin readln x,y ; f[x][y]: sqrt sqr a[x][1]-a[y][1] +sqr a[x][2]-a[y][2] ; f[y][x]: f[x][y]; end; readln s,e ; for k: 1 to n do for i: 1 to n do for j: 1 to n do f[i][j]: max f[i][j],f[i][k]+f[k][j] ; writeln f[s,e]:0:2 ; close input ; end. floyed Floyed-Warshall 算法O n^3 ; 1000节点以下 本质:动态规划 适用于出现负边权的情况 if 点u,v有边相连,则dis[u][v] val else dis[u][v]: maxlongint div 3 //防止超出范围 for k: 1 to n do for i: 1 to n do for j: 1 to n do dis[i][j]: min dis[i][j],dis[i][k]+dis[k][j] 则dis[i][j]就是从i到j的最短路径 k要在最外层!!!!! 变式: 如果是一个没有边权的图,把相连的两点间的距离设为dis[i][j]: true 不相邻的两点设为dis[i][j]: false; 则 for k: 1 to n do for i: 1 to n do for j: 1 to n do dia[i][j]: dis[i][j] or dis[i][k] and dis[k][j] ; 如果dis[i][j] true 则两点间有路径连通 Dijkstra Dijkstra算法o(n^2 用来计算从一个点到其他所有点的最短路径(单源最短路径) 不能处
您可能关注的文档
最近下载
- 二年级语文上单元归类复习.pdf VIP
- ASME B18.29.1-2010 螺旋线圈螺纹插入-自由运行和螺纹锁定(英寸系列).pdf VIP
- 电力行业检查标准清单(发电部分).docx VIP
- 2025至2030年中国四川省渔业行业发展趋势预测及投资规划研究报告.docx
- 新苏教版六年级科学上册试卷1-5单元测试卷含答案5单元全册打包期中期末复习.docx VIP
- 危大工程与超过一定规模的危大工程清单(住建部2018第31号文).pdf VIP
- 2025小学科学学科教师基本功大赛试题(理论部分附答案).docx VIP
- 钢筋混凝土化粪池22S702.docx VIP
- L23R401 城镇热水管道直埋敷设图集.docx
- GMP文件管理规程(新版).pdf VIP
文档评论(0)