- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图的运算 如果数据元素集合D中的各元素之间存在任意的前后件关系R,则此数据结构G=(D,R)称为图。 奥林匹克信息学联赛的许多试题,需要用图来描述数据元素间的联系,需要用图的经典算法来解题 排列方案 将2n个0和2n个1排成一圈。从任一位置开始,每次按逆时针方向以长度为n+1的单位数二进制数。要求给出一种排法,用上面方法产生出的2n+1个二进制数互不相同。当n=2时,有4个0和4个1,排列如下图: 从位置a开始,逆时针方向取三个数000;然后从位置b开始取三个数001,接着取010、101、011、111、110、100,共8个互不相同的二进制数。 【输入】n (1≤n≤100); 【输出】2n+1位二进制数(排列方案不唯一,但一定能组成2n+1个互不相同的n+1位二进制数) 算法分析 以n位二进制数排列之间的重叠部分为点,以01排列为边,构成有向图。例如n=2 从该图中找一条欧拉回路(不重复地遍历图中的每一条边),边上的01序列构成问题的解。设vt[i]—十进制数i的访问标志(0≤i≤2n-1)。 var n,i:integer; mx,nw:longint; {mx=2n;nw为n位二进制数对应的十进制数} vt:array[0..10500] of byte; {访问序列} begin readln(n); {输入0和1的个数} mx:=1; {mx=2n } for i:=1 to n do mx:=mx*2; nw:=0;i:=0; {从0开始访问} while vt[nw]2 do {若十进制数nw 未访问,则增加一条边} begin inc(vt[nw]); if vt[nw]=1 {增加一条权为1的边} then begin write(1); nw:=(nw*2+1)mod mx; end else begin write(0); nw:=(nw*2)mod mx; end; {增加一条权为0的边} i:=(i+1)mod 70; {每行01数的上限为70} if i=0 then writeln; end;{while} end.{main} (2)计算有向无圈图的根 输入一个有向无圈图DAG,计算和输出DAG的根r(即r到其他任何顶点都有一条路。若图中没有根,则输出“not found”)。 输入: 顶点数n和边数e 以下为e行,每行为一条有向边的两个端点 输出: 根r或者“not found” 算法分析 设 const mx=100;{顶点数的上限} var n,e,i,j,k,a,b:integer;{ 顶点数n、边数e} g:array[1..mx,1..mx]of boolean;{传递闭包} bn:boolean;{根存在标志} 1、输入信息,计算传递闭包 readln(f,n,e);{输入顶点数和边数} fillchar(g,sizeof(g),0);{ 有向无圈图初始化} for i:=1 to e do{输入信息,构造传递闭包的初始值} begin readln(f,a,b);g[a,b]:=true end; for k:=1 to n do{计算传递闭包} for i:=1 to n do for j:=1 to n do if g[i,j] or g[i,k] and g[k,j]then g[i,j]:=true; 2、计算DAG的根 然后枚举每一个顶点。根据传递闭包的信息,若当前顶点至其它所有顶点有路,则判定该顶点即为根。若没有一个顶点可作为DAG的根,则输出失败信息 for i:=1 to n do{枚举每一个可能的根} begin bn:=true;{设定I至其他所有顶点有路的标志} for j:=1 to n do{若I至任一个顶点无路,则返回bn为false} if (ij) and not g[i,j] then begin bn:=false; break end; if bn then break{若I至其他所有顶点有路,则输出根i} end; if bn then writeln(i) else writel
您可能关注的文档
最近下载
- 摄像头检验作业指导书.doc VIP
- 《城镇污水污泥流化床干化焚烧技术规程》(征求意见稿).pdf
- 阿奇沙坦非无菌化学原料药车间设计--本科毕业论文.docx VIP
- 办公用品供货服务计划方案.docx VIP
- 用于透明细胞肾细胞癌分型和评估透明细胞肾细胞癌预后的基因及其应用.pdf VIP
- G 正谱 赶圩归来阿里里 林凯 合吧声乐歌谱正谱子五线谱钢琴伴奏谱乐谱曲 谱弹唱谱歌曲乐曲.pdf VIP
- 零星工程施工方案范本(3篇).docx VIP
- 新疆四史应知应会内容.doc VIP
- 眼科显微器械的清洗流程.pptx VIP
- Lesson9-10Howareyoutoday(课件)新概念英语第一册.pptx VIP
文档评论(0)