ZOJ1221 Risk 图形的遍历
一开始做图形遍历的题都是用链表做的,这次用数组体会到了方便但就是有点浪费。
不过题目给的内存限制已经足够了。
1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<queue> 5 #include<iostream> 6 7 using namespace std; 8 9 typedef struct 10 { 11 int v; 12 int step; 13 }Point; 14 Point P[21]; 15 int visit[21], map[21][21],n; 16 int ncases, A[21], B[21]; 17 18 queue<Point>q; 19 int main() 20 { 21 int i, j, from, to,k=1; 22 while(scanf("%d",&n) != EOF) 23 { 24 memset(map,0,sizeof(map)); 25 26 while( n-- ) 27 { 28 scanf("%d",&to); 29 map[1][to] = 1; 30 map[to][1] = 1; 31 } 32 for(i=2; i<=19; i++) 33 { 34 scanf("%d",&n); 35 while( n-- ) 36 { 37 scanf("%d",&to); 38 map[i][to] = 1; 39 map[to][i] = 1; 40 } 41 } 42 scanf("%d",&ncases); 43 printf("Test Set #%d\n",k++); 44 while( ncases-- ) 45 { 46 scanf("%d%d",&from,&to); 47 memset(visit,0,sizeof(visit)); 48 for(i=1; i<=20; i++) 49 { 50 P[i].v = i; 51 P[i].step = 0; 52 } 53 q.push(P[from]); 54 visit[from] = 1; 55 while(!q.empty()) 56 { 57 Point u = q.front(); 58 q.pop(); 59 if(u.v == to) 60 { 61 printf("%d to %d: %d\n",from,to,u.step); 62 break; 63 } 64 for(i=1; i<=20; i++) 65 { 66 if(!visit[i]&&map[u.v][i]) 67 { 68 P[i].step = u.step+1; 69 q.push(P[i]); 70 visit[i] = 1; 71 } 72 } 73 } 74 while(!q.empty()) 75 q.pop(); 76 } 77 printf("\n"); //这里没加卡了一下 78 } 79 return 0; 80 }
转载于:https://www.cnblogs.com/cn19901203/archive/2012/05/24/2517216.html
ZOJ1221 Risk 图形的遍历相关推荐
- ArangoDB AQL中的图形绘制遍历
原文:Graphs in AQL AQL中的图形 在ArangoDB中可以使用多种方式处理图形,以及使用AQL查询图形的不同方法. 管理图形的两个选项是使用 ArangoDB管理一个图形中涉及的集合的 ...
- 图形结构:克隆图,图的遍历的应用,递归和迭代
克隆一张无向图,图中的每个节点包含一个 label (标签)和一个 neighbors (邻接点)列表 . 克隆图时图的遍历的应用,树的遍历,图的遍历是最基本的操作,他们和数组的遍历是一样的,线性结构 ...
- 一个普通二叉树的遍历
要点:二叉树遍历,要针对基本图形的遍历,先序(NLR),中序(LNR),后序(LRN),且往上看,它是某节点的左子,但往下看,它可能还是某节点的根,这时就要继续往下找,直到找到没有子(也就是叶子)时, ...
- 二叉树非递归dfs——简单思路搞定前中后序遍历
前言:相信很多同学都被二叉树非递归dfs的前中后序遍历方法弄的头疼.网上的答案,什么前中后序遍历各有一套写法,还有什么一个栈的写法,两个栈的写法.看起来能理解,一闭眼自己写都记不住.今天介绍一种用一种 ...
- ArangoDB——图遍历 Graph
图遍历 Graph 边缘文档(Edge)存储在边缘集合,并具有附加属性: _from 和 _to,两个或多个文档通过边缘连接起来. 图 顶点可不必连接其他休战,也可通过多条边与一个以上的其他顶点相连, ...
- 行测【推理判断之图形推理】
推理判断之图形推理 1 图形推理 1.1 位置规律 1.1.1 平移 (1)基本平移 (2)宫格型黑块平移 (3)双宫格黑块平移 1.1.2 旋转.翻转 (1)基本旋转 (2)钟表类旋转 (3)翻转 ...
- OSG入门_场景图形与OpenSceneGraph概述00
简单整理入门笔记,内容包括: 1.场景图形与OpenSceneGraph概述: 2.建立一个场景图形:内存管理.叶节点和组节点.渲染状态.文件I/O.NodeKit与osgText; 3.在程序中使用 ...
- TVM优化GPU机器翻译
TVM优化GPU机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.最近,阿里巴巴集团正在为全球电子商务部署NMT服务. 将Transform ...
- TensorFlow+TVM优化NMT神经机器翻译
TensorFlow+TVM优化NMT神经机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.本文为全球电子商务部署NMT服务. 目前,将Tr ...
最新文章
- 大学生学业指导类书目
- CentOS安装Pure-FTPd+MySQL
- SD--RV_accounting_document_create函数的代码解读
- 元素的层次结构和HTML文档结构
- Object 对象详解
- emmet语法 1127
- 精彩回顾|DBDI 数据智能技术研讨沙龙(杭州站)顺利举办
- Sass的安装(windows 10)
- maven简单了解,没有Maven和使用Maven的区别
- UI设计新手制作MBE风格图标的思路是什么
- Python3 XML解析
- 什么是主数据?有什么作用?
- NOI2017退役记
- 牛客网之黑暗的字符串
- SUMOlympics
- spark读csv文件转成map
- conda创建虚拟环境后文件夹中只有conda-meta文件夹,无法将环境添加到pycharm中
- 肖维勒准则matlab_莱因达 ( PauTa)准则、格拉布斯 ( Grubbs)准则、肖维纳 (Chauvenet)准则 三者的区别...
- urllib.request.Request的用法
- python画鱼教程_Python Flask高级编程之从0到1开发《鱼书》精品项目 学习 教程??
热门文章
- python数据分类_Python数据挖掘实践—KNN分类
- [深度学习] 自然语言处理 --- Self-Attention(二) 动画与代码演示
- [机器学习] TF-IDF算法
- g77,g95,gfortran的关系
- spring boot修改内置容器tomcat的服务端口
- SIFT算法原理(不带公式)
- 第13讲nbsp;日期和时间nbsp;EXCEL2010…
- 为什么以前那种到处喝咖啡创业的场景一去不复返了?
- 年化利息100%,现金贷监管寒冬将至
- 收到几本书,顺便热热身