hdu 5521 最短路
Meeting
Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 1656 Accepted Submission(s): 515
fences they were separated into different blocks. John's farm are divided into n blocks labelled from 1 to n.
Bessie lives in the first block while Elsie lives in the n-th one. They have a map of the farm
which shows that it takes they ti minutes to travel from a block in Ei to another block
in Ei where Ei (1≤i≤m) is a set of blocks. They want to know how soon they can meet each other
and which block should be chosen to have the meeting.
follow.
The first line of input contains n and m. 2≤n≤105. The following m lines describe the sets Ei (1≤i≤m). Each line will contain two integers ti(1≤ti≤109) and Si (Si>0) firstly. Then Si integer follows which are the labels of blocks in Ei. It is guaranteed that ∑mi=1Si≤106.
Otherwise, output two lines. The first line contains an integer, the time it takes for they to meet.
The second line contains the numbers of blocks where they meet. If there are multiple
optional blocks, output all of them in ascending order.
5 4
1 3 1 2 3
2 2 3 4
10 2 1 5
3 3 3 4 5
3 1
1 2 1 2
3 4
In the first case, it will take Bessie 1 minute travelling to the 3rd block, and it will take Elsie 3 minutes travelling to the 3rd block. It will take Bessie 3 minutes travelling to the 4th block, and it will take Elsie 3 minutes travelling to the 4th block. In the second case, it is impossible for them to meet.
/*
hdu 5521 最短路 problem:
给你n个点的图,甲在1,乙在n. 它们同时移动,问相聚时的最小花费. 然后是m个点集,点集内的任意两点之间的移动花费为ti solve:
因为是同时移动. 所以分别对1和n求一个最短路. 然后每个节点取两个最短路中的最大值就能得到花费.
最开始想的是建立所有边,但是边的数量会太多.
所有走到一个节点时,将其所在的所有点集处理一遍. 而且只需要处理一次即可,已经维护了一个最短状态. hhh-2016-08-30 19:56:48
*/
#pragma comment(linker,"/STACK:124000000,124000000")
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <vector>
#include <math.h>
#include <queue>
#include <set>
#include <map>
#define lson i<<1
#define rson i<<1|1
#define ll long long
#define clr(a,b) memset(a,b,sizeof(a))
#define scanfi(a) scanf("%d",&a)
#define scanfs(a) scanf("%s",a)
#define scanfl(a) scanf("%I64d",&a)
#define key_val ch[ch[root][1]][0]
#define inf 0x3f3f3f3f3f3f3f3f
using namespace std;
const ll mod = 1e9+7;
const int maxn = 100010; struct qnode
{
int v,c;
qnode(int _v = 0 ,int _c =0) : v(_v),c(_c){}
bool operator <(const qnode &a)const
{
return c > a.c;
}
}; bool vis[maxn];
bool tvis[maxn];
ll dis1[maxn], dis2[maxn],cost[maxn];
int anspos[maxn];
int num[maxn];
vector<int> pos[maxn];
vector<int> have[maxn];
int T,n,m;
void dijkstra(int start,ll dis[])
{
for(int i= 1;i <= n;i++)
{
vis[i] = tvis[i] = 0;
dis[i] = inf;
}
priority_queue<qnode> q;
q.push(qnode(start,0));
dis[start] = 0;
qnode t;
while(!q.empty())
{
t = q.top();
q.pop();
int u = t.v;
if(vis[u]) continue;
vis[u] = 1;
for(int i = 0 ;i < pos[u].size();i++)
{
int t = pos[u][i];
// if(tvis[t]) continue;
// tvis[t] = 1;
for(int j = 0;j<have[t].size();j++)
{
int v = have[t][j];
if(v == u)
continue;
if(dis[v] > dis[u] + cost[t])
{
dis[v] = dis[u] + cost[t];
q.push(qnode(v,dis[v]));
}
}
}
}
} int main()
{
int x;
// freopen("in.txt","r",stdin);
scanfi(T);
int cas = 1;
while(T--)
{
scanfi(n),scanfi(m);
for(int i = 0 ;i <= n;i++)
pos[i].clear();
for(int i = 0;i <= m;i++)
have[i].clear();
for(int i = 1;i <= m;i++)
{
scanf("%I64d%d",&cost[i],&num[i]);
for(int j = 0;j < num[i];j++)
{
scanfi(x);
pos[x].push_back(i);
have[i].push_back(x);
}
}
dijkstra(1,dis1);
dijkstra(n,dis2);
int cnt = 0;
ll ans = inf;
for(int i = 1;i <= n;i++)
{
ll t = max(dis1[i],dis2[i]);
if(t != inf){
ans = min(ans,t);
}
}
for(int i =1; i <= n;i++)
{
if(max(dis1[i],dis2[i]) == ans)
anspos[cnt++] = i;
}
printf("Case #%d: ",cas++);
if(ans != inf)
{
printf("%I64d\n",ans);
for(int i = 0;i < cnt;i++)
{
printf("%d%c",anspos[i],i == cnt-1 ? '\n':' ');
}
}
else
printf("Evil John\n");
}
return 0;
}
hdu 5521 最短路的更多相关文章
- HDU 5521 Meeting(虚拟节点+最短路)
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU - 2544最短路 (dijkstra算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- HDU 5521.Meeting 最短路模板题
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- hdu 5521 Meeting(最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5521 题意:有1-n共n个点,给出m个块(完全图),并知道块内各点之间互相到达花费时间均为ti.已知两 ...
- HDU 5521 Meeting【最短路】
今天旁观了Angry_Newbie的模拟区域赛(2015shenyang) 倒着看最先看的M题,很明显的最短路问题,在我看懂的时候他们已经开始敲B了. 后来听说D过了很多人.. D题一看是个博弈,给了 ...
- HDU 5521:Meeting(最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=5521 Meeting Problem Description Bessie and her friend E ...
- HDU 5521 [图论][最短路][建图灵感]
/* 思前想后 还是决定坚持写博客吧... 题意: n个点,m个集合.每个集合里边的点是联通的且任意两点之间有一条dis[i]的边(每个集合一个dis[i]) 求同时从第1个点和第n个点出发的两个人相 ...
随机推荐
- bug终结者 团队作业第六、七周
bug终结者 团队作业第六.七周 作业要求:团队作业第六.七周 博客编辑:20162322 朱娅霖 一.修改<需求规格说明书> <需求规格说明书>2.0版(即初稿) <需 ...
- 2017-2018-1 1623 bug终结者 冲刺002
bug终结者 冲刺002 by 20162329 张旭升 今日冲刺任务: 能够显示主菜单和功能 游戏需要提供主菜单让玩家进行游戏设置,同时能能够把地图文件中的信息转换成为图像显示到游戏界面上 能够实现 ...
- git基本语法
基本用法(上) 一.实验说明 本节实验为 Git 入门第一个实验,可以帮助大家熟悉如何创建和使用 git 仓库. 二.git的初始化 在使用git进行代码管理之前,我们首先 ...
- L2 约束的最小二乘学习法
\[ \begin{align*} &J_{LS}{(\theta)} = \frac { 1 }{ 2 } { \left\| \Phi \theta - y \right\| }^{ 2 ...
- 电子称DIY(贴应变片+写代码)
第一步.应变片介绍 ---------------------------------------------------------------------------------------- ...
- 从一个事件绑定说起 - DOM
事件绑定的方式 给 DOM 元素绑定事件分为两大类:在 html 中直接绑定 和 在 JavaScript 中绑定. Bind in HTML 在 HTML 中绑定事件叫做内联绑定事件,HTML 的元 ...
- SpringCloud的应用发布(二)vmvare+linux,Centos7.0下发布应用
一.运行环境 1.jdk下载安装 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 检查是否有老版本jdk 如 ...
- ELK学习总结(3-3)elk的组合查询
1.bool 查询: must: 必须 should: 可以满足,也可以不满足. must_not: minimum_should_match: 至少要x个匹配才算匹配成功 disable_coor ...
- OAuth2.0学习(1-9)新浪开放平台微博认证-web应用授权(授权码方式)
1. 引导需要授权的用户到如下地址: URL 1 https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&respons ...
- 英语词汇周计划(1-1)group 1
abandon 1.He abandoned his wife and ten-year-old daughter. 2.abandon oneself to do sth 3.with abando ...