#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
//Constant area
const int MAXN=1000000;
const int MIN_INF=0x80000000;
const int MAX_INF=0x7fffffff;
//Variable area
int n,te,m,st,ed,e;
//链式前向星起手4数组
int beg[20010];
int to[200100];
int nex[200100];
int weight[200100];
//标记该边隶属于哪条线路
int type[200100];
int tmp[105];
int path[10005];//记录路径
int take[10005];//记录这条路径经过的路线
int disw[10005];//记录最短距离
bool vis[10005];
int huancheng[10005];//记录换乘次数
vector<int> types;
vector<int> names;
struct p{int self;int val;bool operator <(const p &b)const{return val>b.val;}
};
priority_queue<p> q;
//Initialization area
void init(){e=0;memset(beg,-1,sizeof(beg));return;
}
//Function areavoid add(int x,int y,int t,int ty){nex[++e]=beg[x];beg[x]=e;to[e]=y;weight[e]=t;type[e]=ty;
}
void dijkstra(){memset(vis,0,sizeof(vis));memset(disw,0x3f3f3f3f,sizeof(disw));memset(path,-1,sizeof(path));memset(take,-1,sizeof(take));memset(huancheng,0x3f3f3f3f,sizeof(huancheng));disw[st]=0;huancheng[st]=0;q.push({st,0});while(q.size()){p now=q.top();q.pop();if(vis[now.self])continue;vis[now.self]=true;for(int i=beg[now.self];i!=-1;i=nex[i]){int too=to[i];if(disw[too]>disw[now.self]+weight[i]){disw[too]=disw[now.self]+weight[i];path[too]=now.self;take[too]=type[i];if(now.self==st||take[too]==take[now.self])huancheng[too]=huancheng[now.self];elsehuancheng[too]=huancheng[now.self]+1;q.push({too,disw[too]});}else if(disw[too]==disw[now.self]+weight[i]){if(now.self==st||take[now.self]==type[i]){if(huancheng[too]>huancheng[now.self]){huancheng[too]=huancheng[now.self];path[too]=now.self;take[too]=type[i];}}else{if(huancheng[too]>huancheng[now.self]+1){huancheng[too]=huancheng[now.self]+1;path[too]=now.self;take[too]=type[i];}}}}}if(disw[ed]!=0x3f3f3f3f){cout<<disw[ed]<<endl;names.clear();types.clear();int lasttype=-2;for(int i=ed;i!=-1;i=path[i]){if(take[i]!=lasttype){names.push_back(i);types.push_back(take[i]);lasttype=take[i];}}for(int i=types.size()-1;i!=0;i--)printf("Go by the line of company #%d from %04d to %04d.\n",types[i-1],names[i],names[i-1]);}elseprintf("Sorry, no line is available.\n");
}
int main(){init();cin>>n;for(int i=1;i<=n;i++){cin>>te;cin>>tmp[1];for(int j=2;j<=te;j++){cin>>tmp[j];add(tmp[j],tmp[j-1],1,i);add(tmp[j-1],tmp[j],1,i);}}cin>>m;for(int i=1;i<=m;i++){cin>>st>>ed;dijkstra();}
}

7-14 周游世界 周游世界是件浪漫事,但规划旅行路线就不一定了…… 全世界有成千上万条航线、铁路线、大巴线,令人眼花缭乱。所以旅行社会选择部分运输公司组成联盟,每家公司提供一条线路,然后帮助客户规划相关推荐

  1. 为什么每家公司都需要协作工具?

    前言 企业很多时候,和一个人是一样一样一样的.经营,也和一个人的成长是一样一样一样的.作为企业的管理者,如何健康存续的运营公司,是每个合格CEO不断成长路径上的必修课.就像<谈谈SaaS创业和企 ...

  2. 在大数据时代,每家公司都要有大数据部门吗?

    如果这个问题换做是:在电气时代,每家公司都要有个发电厂吗?是不是会更好回答一些? 事实上每一种重大技术的出现,都会对产业产生大的变化.在蒸汽时代,采矿机采用蒸汽机后,会带来生产效率的极大提升,而轮船加 ...

  3. 哪些公司在为制造业企业提供智能工厂解决方案?

    问题:哪些公司在为制造业企业提供智能工厂解决方案? 回答:该问题,我准备从以下4个方面来回答.希望对大家有所帮助! 一.工业4.0与制造业的挑战 二.智能工厂规划 三.制造业智能工厂解决方案 四.大数 ...

  4. Acrel-3000WEB电能管理系统的应用,为电力运维公司和售配电公司提供与用户连接互动的平台

    1 引言 新电改的要点是"三放开一独立三强化":输配以外的经营性电价放开.售电业务放开.配电业务放开.公益性和调节性以外的发供电计划放开,交易独立.本次电改将有利于还原电力的商品属 ...

  5. Acrel-3000WEB电能管理系统运用互联网和大数据技术,为电力运维公司和售配电公司提供变电所运维云平台

    1 引言 2015年国务院发布<中共中央.国务院关于进一步深化电力体制改革的若干意见>(中发[2015]9号),简称"电改9号文".而本次新电改的重点是"三放 ...

  6. 电能管理系统运用互联网和大数据技术,为电力运维公司和售配电公司提供变电所运维云平

    Acrel-3000WEB电能管理系统在扬州某年产3GW高性能太阳能光伏组件项目 安科瑞 崔远航 摘要:在信息时代,电力信息系统的应用促迚了电力企业的収展,增强了电力系统运行的安全性与稳定性,对满足用 ...

  7. 【什么是iMessage推送,im群发】苹果推iMessage是苹果公司为其设备用户提供的即时通讯服务

    iMessage是苹果公司为其设备用户提供的即时通讯服务,拥有一系列强大的功能和特点.然而,至今为止,苹果并未提供官方的群发部署功能.iMessage主要被设计为点对点的通信工具,即用户可以与一个或多 ...

  8. 某一运输大件特快专递汽车货运公司对运输物品有如下规定:若运输货物重量wei超过1000千克或低于100千克,不予运输;重量满足按运送距离计算运费:20公里以内起步价为120元;运输距离dist超过20

    题目原文 某一运输大件特快专递汽车货运公司对运输物品有如下规定:若运输货物重量wei超过1000千克或低于100千克,不予运输:重量满足按运送距离计算运费:20公里以内起步价为120元:运输距离dis ...

  9. 云计算演义(序):除了公有云三巨头,其他的云计算公司和企业IT公司都要完蛋吗?云计算时代来了没有狂欢盛宴只有整个IT业的呜咽

    版权声明:任何转载需全文转载并保留来源(微信公众号techculture)和该声明,并同时转载文后的二维码,否则视作侵权:如有文字或图片不全,请移步公众号techculture. 私有云巅峰已过,混合 ...

最新文章

  1. 容器管理大战:Kubernetes vs.Docker Swarm与Amazon ECS
  2. V$session表的妙用
  3. Linux 模拟 鼠标 键盘 事件
  4. 实用工具篇(三):Free Mybatis plugin
  5. jdbc和odbc区别
  6. Android 系统(227)---沉浸式状态栏工具类
  7. HDU 4371 Alice and Bob
  8. AlbertTransformerEncoder
  9. Atitit 上传进度的实现与原理 目录 1.1. 前端 1 1.2. 读取进度 1 1.3. 后端 定时注入进度 1 1.1.前端                         wind
  10. varchar2 汉字长度问题
  11. winform自定义日历控件
  12. 谷歌浏览器怎么长截图怎么截_Google浏览器如何截取网页长图 - 里维斯社
  13. 08-3 Kubernetes 调度器 - 污点
  14. 《第四部分-练习题:微信朋友圈、支付宝支付功能测试点》
  15. 计算机网络 层次路由,计算机网络-网络层(5)层次路由
  16. sqlserver获取周数
  17. 实时识别骰子的点数_Halcon
  18. 服务器显示器白屏,电脑显示器白屏的原因以及处理方法
  19. 前端三件套之JS速成
  20. windows 服务程序和桌面程序集成(一)

热门文章

  1. 几行代码实现Android 地图选择,地址选择,坐标选择
  2. 提示“磁盘未被格式化,是否格式化”的解决方法
  3. spring boot中mysql驱动加载过程
  4. 怎么用计算机ping组播地址,Windows 10如何ping计算机名之mDNS
  5. mybatis 模糊匹配
  6. 学习 Python 之 Pygame 开发坦克大战(四)
  7. 文本审核 API 收集
  8. 淑芬 四川方言.非常搞笑
  9. java使用mangodb进行多条件组合查询
  10. 海康设备通过SDK获取设备硬件相关参数