poj1847Tram (最短路)
来源:互联网 发布:蜂王浆胶囊 知乎 编辑:程序博客网 时间:2024/06/03 19:23
题意:有n个点,每个点是一个开关,开关只能有一个方向走一条路,而第一个数就是默认的开关指向,不用旋转。而其他路径只需要旋转1次,无论是哪条,只需1次。
题目给的实例
3 2 1 //表示有3个开关点,计算从第二个到第一个最少需要旋转几次
2 2 3//第1个开关可以通向2 和3 ,通向2不需要旋转,通向3需要旋转1次
2 3 1//第2个开关可以通向3 和1, 通向3不需要旋转,通向1需要旋转1次
思路: 把题目读懂就很好做了..直接建图,由于n范围比较小,所以直接floyd就行了
#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string>#include <set>#include <ctime>#include <cmath>#include <cctype>using namespace std;#define maxn 100000#define LL long longint cas=1,T;const int INF = 1<<25;int mapp[105][105];int n,m;int main(){ int a,b;while (scanf("%d%d%d",&n,&a,&b)!=EOF){for (int i = 1;i<=n;i++)for (int j = 1;j<=n;j++)if (i==j)mapp[i][j]=0; elsemapp[i][j]=INF;for (int i = 1;i<=n;i++){scanf("%d",&m);for (int j = 1;j<=m;j++){int u;scanf("%d",&u);if (j==1)mapp[i][u]=0;elsemapp[i][u]=1;}}for (int k = 1;k<=n;k++)for (int i = 1;i<=n;i++)for (int j = 1;j<=n;j++)if (mapp[i][j] > mapp[i][k]+mapp[k][j])mapp[i][j] = mapp[i][k]+mapp[k][j];if (mapp[a][b] >=INF)printf("-1\n");elseprintf("%d\n",mapp[a][b]);}//freopen("in","r",stdin);//scanf("%d",&T);//printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC);return 0;}
题目
0 0
- poj1847Tram (最短路)
- poj1847Tram 最短路 floyd dijkstra
- poj1847Tram
- 最短路径Floyd算法-POJ1847Tram
- 最短路(最短路)
- HDOJ2544 最短路(最短路)
- 最短路 (Dijstra) 最短路
- HDU2544:最短路(最短路)
- poj1847Tram (迪杰斯特拉和弗洛伊得)
- hdu2544(最短路)
- 随笔(最短路)
- hdu3790 (最短路)
- 最短路(dijkstra)
- 最短路--(迪杰斯特拉)
- 最短路(dijkstra)
- poj1535(最短路)
- HLJOJ1214(最短路)
- 最短路(Dijkstra)
- iOS-CollectionView自定义相册功能_性能优化
- -canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query for scheme xx"
- mac 安装nginx
- Leetcode 150. Evaluate Reverse Polish Notation
- 设置JAVA路径、TOMCAT路径、启动TOMCAT、启动浏览器
- poj1847Tram (最短路)
- 半小时学会上传本地项目到github
- solr-4.10.0、tomcat7、IKAnalyzer2012FF_u1中文分词器相整合以及相关配置
- 寒風的Cocos之旅之Lua篇---2048项目的结构
- 【闲】用PPT制作弹幕效果
- JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
- 关于C语言字符串处理之可变字符串
- nc工具使用
- SLICK+SQLITE+SCALA