- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图论算法1
BFS: int main(){ for(;;) { if(!(cinc1)) break; cind1c2d2; //输入起点、终点。 for(int i=0;i8;i++) for(int j=0;j8;j++)m[i][j]=0;//所有点都标记为“没走” proc(); } return 0; } #include iostream #include queue using namespace std; int d[8][2]={{1,2},{1,-2},{2,-1},{2,1}, {-1,2},{-1,-2},{-2,-1},{-2,1}}; int m[8][8];//给走过的点标记 char c1,c2,d1,d2; void proc(); void proc(){ int x,y,nx,ny,sx,sy,dx,dy,step=0; sx=c1-a;sy=d1-1; dx=c2-a;dy=d2-1; queue int tq; tq.push(sx);tq.push(sy);tq.push(step); m[sx][sy]=1; while (!tq.empty()){ x=tq.front(); tq.pop(); y=tq.front(); tq.pop(); step=tq.front(); tq.pop(); if(x == dx y == dy)break; for(int i=0;i8;i++){ nx=x+d[i][0];ny=y+d[i][1]; if(nx0 || nx = 8 || ny0 || ny = 8 ||m[nx][ny]) continue; tq.push(nx);tq.push(ny);tq.push(step+1); m[nx][ny]=1; } } coutTo get from c1d1 to c2d2 takes step knight moves.endl; } 初始点入队 取出队头元素 新点加入队尾 Knight Moves zoj(1091)程序实现 双向BFS a b c d e f g h 1 2 3 4 5 6 7 8 0 2 1 2 2 1 2 1 2 2 2 1 1 1 1 2 0 1 2 从起点、终点同时开始 双向BFS,有效地提高了时空效率。 从起点找2步能跳到的点 从终点找1步能跳到的点 DFS: pku2258 给无向图,求此图中的最长路径。要求路不能重复走,但节点可以重复地到达。如 输入 输出? //best用来记录最长路径的长度,gr[i][j]i到j的边长为1,以每一个结点为源点进行深搜 #includestdio.h #includememory.h int gr[25][25],best,n,m; void dfs(int p,int depth) //p为源点,depth为深度 { int i; bool flag=true; for(i=0;in;i++)//n-1个点 { if(gr[p][i]) { gr[i][p]=gr[p][i]=0; //表示该路已用过 dfs(i,depth+1); //以i为源点深层搜索 flag=false; gr[i][p]=gr[p][i]=1; //表不用该路 } } if(flag)//表示已经深搜到头没有路 { if(depthbest) best=depth; return; } } main() { int i,a,b; while(scanf(%d %d,n,m)!=EOF) { if(n==0m==0) break; best=0; memset(gr,0,sizeof(gr)); for(i=0;im;i++) { scanf(%d %d,a,b); gr[a][b]=gr[b][a]=1; } for(i=0;in;i++)//对每个点深搜 dfs(i,0); printf(%d\n,best); } } 青蛙(zju1942) 湖中
您可能关注的文档
- 周敦颐与二程.ppt
- 周涛张韶峰 下一代推荐引擎的关键技术及应用案例.pptx
- 吨反渗透系统工艺流程培训资料.ppt
- 命令的应用.ppt
- 和钟姐姐交朋友人教版品德与生活第一册.ppt
- 咬文嚼字章节件.ppt
- 品德与生活品德与社会 教材分析及教学建议.ppt
- 品德与生活章节程标准解读.ppt
- 品德与生活章节程标准简介.ppt
- 品德与社会 教学中存在主要问题与解决策略.ppt
- 2024年江西省寻乌县九上数学开学复习检测模拟试题【含答案】.doc
- 2024年江西省省宜春市袁州区数学九上开学学业水平测试模拟试题【含答案】.doc
- 《GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语》.pdf
- 中国国家标准 GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语.pdf
- GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- 《GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构》.pdf
- 中国国家标准 GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 中国国家标准 GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 《GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南》.pdf
最近下载
- 小学一年级家长会语文老师PPT课件1_图文.ppt
- 奥鹏云南开放大学 小学语文案例教学(20秋)形考作业4(客观).doc VIP
- 沅陵大曲酒厂续建项目(重大变更) 环境影响报告书.pdf
- SH∕T 1541.1-2019 塑料颗粒外观试验方法 第1部分:目测法.pdf
- 泳池清洁机器人.pdf VIP
- 中职高考语文二轮复习写作技巧专项突破专题01 应用文写作-技巧与练习(含详解).docx VIP
- (人教版)数学三年级上册计算题“天天练”习题卡,含100份题组,附参考答案.doc
- 【新教材】人教PEP版(2024)三年级上册英语Unit 1 Making friends单元整体教学设计.docx
- 乡村学校德育工作实践.docx VIP
- “国家中小学智慧教育平台”培训方案(2).doc
文档评论(0)