#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. react中高阶组件
  2. java cpu 内存_如何检查Java中的CPU和内存使用情况?
  3. Android开发之解决NestedScrollView滑动监听兼容低版本的方法
  4. C# 多线程及同步简介示例
  5. Srping MVC入门推荐
  6. 「Python基础知识」Python中的封装有什么作用
  7. bzoj 1151: [CTSC2007]动物园zoo
  8. linux sd卡 分区变大,Linux 动态调整分区大小
  9. www.12306.cn是安抚群众心灵的吧?
  10. 2012NOIP模拟试题
  11. 给tomcat指定JDK
  12. 【转】NAT穿透技术
  13. MySQL索引失效、优化的方法
  14. 你如何理解软件测试?
  15. 【算法导论-36】并查集(Disjoint Set)具体解释
  16. 操作系统4.1.8 文件保护
  17. 百度富文本编辑器修改图片上传尺寸
  18. 网易云信助力兴趣社交头部玩家,【微光】打造在线交友电影院
  19. 中国计算机专业的大学生相比于美国差在哪里?
  20. 20175208 实验二 《Java面向对象程序设计》实验报告

热门文章

  1. Windows7 操作系统文件搜索方法
  2. 从头学前端-CSS基础01
  3. 将DataFrameGroupBy转回DataFrame
  4. 云原生、数据和AI、混合云、软件开发,微软再次刷新业界地位!
  5. 最新spark,hive,flink,kafka,hadoop,zookeeper,flume,java,maven,Apache历史版本大全下载
  6. GJB 9001C质量管理体系文件构建(2、质量手册编制要点)第6章--第7章
  7. C++ — 类型萃取
  8. SPSS教程——分箱功能将连续数据离散化
  9. 2021-09-14 uboot移植开发
  10. 点石互动--石头之:怎样判断站点收录状况合理(系列三)