传送门

题目大意

有编号1~n的星球,在不用的星球间共有m个传送门,任意两个星球间传送门不超过1个,每个传送门需要花费一定的时间,但是在某时刻会在某星球有旅客到达,这时要一定等到没有旅客到达的时候才能出发,问从1走到n最少花费时间是多少。

分析

首先我们先考虑一个贪心策略,如果到达点i的时间有a和b(a<b),则从i出发前往n的途中使用时间为a的这一方案一定更优,即不存在一种情况使得某个点先到达的最终结果比后到达的坏,原因易证。然后计算最短路就可以了。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
const int inf = 0x3f3f3f3f;
vector<pair<int,int> >v[];
priority_queue<pair<int,int> >q;
map<int,int>is[];
int d[],vis[];
inline int wh(int id,int time){
int res=,i;
for(i=time;i<=;i++)
if(is[id][i])res++;
else break;
return res;
}
int main(){
int n,m,i,j,k;
scanf("%d%d",&n,&m);
for(i=;i<=m;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
v[x].push_back(make_pair(y,z));
v[y].push_back(make_pair(x,z));
}
for(i=;i<=n;i++){
int t,x;
scanf("%d",&t);
for(j=;j<=t;j++){
scanf("%d",&x);
is[i][x]=;
}
}
memset(d,0x3f,sizeof(d));
d[]=;
q.push(make_pair(,));
while(!q.empty()){
int x=q.top().second;
q.pop();
if(x==n)break;
if(vis[x])continue;
vis[x]=;
d[x]+=wh(x,d[x]);
for(i=;i<v[x].size();i++){
int y=v[x][i].first,z=v[x][i].second;
if(d[y]>d[x]+z){
d[y]=d[x]+z;
q.push(make_pair(-d[y],y));
}
}
}
if(d[n]>=inf)puts("-1");
else printf("%d\n",d[n]);
return ;
}

229B Planets的更多相关文章

  1. 【Codeforces 229B】Planets

    [链接] 我是链接,点我呀:) [题意] [题解] 设dis[i]表示到达i号传送器的最早时刻. 显然,虽然有那么多的出发时刻的限制,但我们还是越早到越好的. 因为你到得越早,出发的时间肯定不会比到达 ...

  2. 发布Qt Quick桌面应用程序的方法(使得planets在XP上运行)

    发布Qt Quick桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序,于 ...

  3. LYOI2018 Hzy's Planets

    题目描述: 删掉一个边,看其是否联通,图是一棵树,在线,多组询问. 数据范围: \(n \leq 10^5\) 题解: (休闲一下) 这种直接用dfs序即可,直接讨论连边的位置就行. 还有一种做法懒得 ...

  4. vulnhub靶场之THE PLANETS: EARTH

    准备: 攻击机:虚拟机kali.本机win10. 靶机:THE PLANETS: EARTH,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnh ...

  5. POJ 3174 Alignment of the Planets (暴力求解)

    题意:给定 n 个坐标,问你三个共线的有多少组. 析:这个题真是坑啊,写着 n <= 770,那么一秒时间,三个循环肯定超时啊,我一直不敢写了,换了好几种方法都WA了,也不知道为什么,在比赛时坑 ...

  6. Vulnhub - THE PLANETS: EARTH

    环境配置 从www.vulnhub.com下载靶机,在VMware中导入,自动分配IP 主机发现 通过对内网主机的扫描,VMware为目标主机 端口扫描 使用nmap对主机进行扫描 发现443端口信息 ...

  7. HTML基础

    HTML指的是超文本标记语言 (Hyper Text Markup Language), HTML不是一种编程语言,而是一种标记语言 (markup language) ,HTML使用标记标签来描述网 ...

  8. 时隔一年再读到the star

    The Star Arthur C. Clarke It is three thousand light-years to the Vatican. Once, I believed that spa ...

  9. RESTful API URI 设计: 判断资源是否存在?

    相关的一篇文章:RESTful API URI 设计的一些总结. 问题场景:判断一个资源(Resources)是否存在,URI 该如何设计? 应用示例:判断 id 为 1 用户下,名称为 window ...

随机推荐

  1. 字符串数组是可以保存并输出null。只不过不好动态指定长度

    java里如何输出才能让字符串数组不显示出null 2014-05-23 17:46笨妞纤霏 | 浏览 1360 次  编程语言 代码如下package testCourse; public clas ...

  2. FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

    /******************************************************************************** * FAT-fs (mmcblk0p ...

  3. zookeeper安装搭建

    一  zookeeper介绍 因为要使用kafka,但是不想用kafka自带的,而且考虑到后面别的地方需要使用,比如分布式job,觉得独立的比较好. zookeeper目前资料一大把,但是一是我需要锻 ...

  4. UGUI transform

    在编辑器中将UGUI对象挂在另一个物体上,UGUI预制体根对象位置调成零,调好位置后保存 由gameframework初始化,再挂到对应父对象上时,位置会有偏差,会更改锚点旋转等信息,需在OnWind ...

  5. docker镜像的导入和导出

    启动命令 docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3 docker run -d -p 8080:80 gitlab/gitlab-ce ...

  6. Java-API-Package:org.springframework.beans.factory.annotation

    ylbtech-Java-API-Package:org.springframework.beans.factory.annotation 1.返回顶部 1. @NonNullApi @NonNull ...

  7. TCG卡牌游戏研究:《炉石战记:魔兽英雄传》所做的改变

    转自:http://www.gameres.com/665306.html TCG演进史 说到卡牌游戏,大家会联想到什么呢? 是历史悠久的扑克牌.风靡全球的<MTG 魔法风云会>与< ...

  8. Java学习之数据的时间及热度属性

    背景:在JAVA开发的电商网站中都有海量商品信息,绝大部分电商网站都有为了让用户尽快的获取到想要的商品提供流行商品和推荐商品的概念,我的理解是从两个方面反映了商品的时间维度和热度:流行商品是指横向所有 ...

  9. Python No module named pkg_resources

    好记性不如烂笔头. I encountered the same ImportError today while trying to use pip. Somehow the setuptools p ...

  10. jenkins基础知识

    修改默认端口号启动: java -jar jenkins.war --ajp13Port=-1 --httpPort=8089 一些基本的命令: http://[jenkins-server]/[co ...