算法:最短路变形

难度:NOIP+

dijkstra模板啊啊啊

      最短路的变形题,到第x个城市的最早时间= max(到第x个城市的最早时间,到结界发生器所在城市的最晚时间),如果此城市未解锁就不可以推进队列,枚举这个城市所拥有的结界发生器(关闭装置),然后--,即可;

代码如下:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <cmath>
#define ll long long
#define N 70005
using namespace std;
int head[N],dis[N];
struct node
{int to;int next;int val;
}edge[N];
int cnt=1;
void init()
{memset(head,-1,sizeof(head));cnt=1;
}
void add(int u,int v,int w)
{edge[cnt].next=head[u];edge[cnt].to=v;edge[cnt].val=w;head[u]=cnt++;
}
int stat[3005][3005];
int ned[3005];
struct no
{int d;int po;
};
priority_queue<no>Q;
bool operator < (no x,no y)
{return x.d>y.d;
}
int vis[N];
ll tim[3005];
ll maxn;
void diji(int rt)
{memset(dis,0x3f3f3f3f,sizeof(dis));dis[rt]=0;no temp;temp.d=0;temp.po=rt;Q.push(temp);while(!Q.empty()){no te=Q.top();Q.pop();int u=te.po;if(vis[u]) continue;vis[u]=1;maxn=max(1ll*dis[u],tim[u]);no nt;for(int i = head[u];i!=-1;i=edge[i].next){int to=edge[i].to;if(vis[to]) continue;//vis[to]=1;刚刚把dijkstra最短路模板敲错了,没有这句话!!!if(dis[to]>maxn+edge[i].val){dis[to]=maxn+edge[i].val;if(!ned[to]){nt.d=max(1ll*dis[to],tim[to]);nt.po=to;Q.push(nt);}}}for(int i = 1;i <= stat[u][0];i++){int t=stat[u][i];tim[t]=max(tim[t],maxn);ned[t]--;if(!ned[t]){nt.d=max(1ll*dis[t],tim[t]);nt.po=t;Q.push(nt);}    } }
}
int main()
{init();int n,m;scanf("%d%d",&n,&m);for(int i = 1;i <= m;i++){int x,y,w;scanf("%d%d%d",&x,&y,&w);add(x,y,w);}for(int i = 1;i <= n;i++){int tt;scanf("%d",&tt);if(tt){ned[i]=tt;for(int j = 1;j <= tt;j++){int x;scanf("%d",&x);int ctt=++stat[x][0];stat[x][ctt]=i;}}}/*for(int i = 1;i <= 5;i++){for(int j = 1;j <= 5;j++){cout << stat[i][j] << " ";}puts("");}*/diji(1);printf("%lld\n",max(1ll*dis[n],tim[n]));return 0 ;
}

bzoj:1922: [Sdoi2010]大陆争霸 (luogu 2446)相关推荐

  1. [Bzoj 1922] [SDOI2010] 大陆争霸

    1922: [Sdoi2010]大陆争霸 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2274  Solved: 1025 [Submit][Sta ...

  2. BZOJ 1922: [Sdoi2010]大陆争霸

    Description 在一个遥远的世界里有两个国家:位于大陆西端的杰森国和位于大陆东端的 克里斯国.两个国家的人民分别信仰两个对立的神:杰森国信仰象征黑暗和毁灭 的神曾·布拉泽,而克里斯国信仰象征光 ...

  3. AC日记——[SDOI2010]大陆争霸 洛谷 P3690

    [SDOI2010]大陆争霸 思路: dijkstra模板: 代码: #include <bits/stdc++.h> using namespace std; #define maxn ...

  4. P2446 [SDOI2010]大陆争霸

    P2446 [SDOI2010]大陆争霸 题意: n个点,m个边,wi为每个边的边权,对于每个点i,其被l个点保护着,也就是如果保护其的点没有被破坏,点i无法被破坏(也无法经过其前往其他点).现在从1 ...

  5. BZOJ1922: [Sdoi2010]大陆争霸

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1922 带限制最短路. 每个点真正的dis是max(dis[i],dis[v]),v是其保护点. ...

  6. B1922 [Sdoi2010]大陆争霸 最短路

    我一直都不会dij的堆优化,今天搞了一下...就是先弄一个优先队列,存每个点的数据,然后这个题就加了一点不一样的东西,每次的最短路算两次,一次是自己的最短路,另一次是机关的最短路,两者取最大值才是该点 ...

  7. BZOJ1922 SDOI2010 大陆争霸 最短路

    题意:给定一个图,图中有保护关系(u,v)表示到v之前必须先到一次u,求从1到N的最短路 题解: 定义d1[i]为直接到达i的最短距离,这个的更新和普通的Dijkstra一样 定义d2[i]为解除i的 ...

  8. BZOJ-1922 大陆争霸 多限制、分层图最短路 (堆+dijkstra)

    1922: [Sdoi2010]大陆争霸 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1154 Solved: 478 [Submit][Status ...

  9. [Luogu P2447] [BZOJ 1923] [SDOI2010]外星千足虫

    洛谷传送门 BZOJ传送门 航空航天局(NASA)研制发射,行经火星.金星.土卫六.木卫二.谷神星."张衡星"等232323颗太阳系星球,并最终在小行星"杰森星" ...

  10. BZOJ 1923: [Sdoi2010]外星千足虫

    1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 921  Solved: 592 [Submit][Stat ...

最新文章

  1. DL之AlexNet:利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)
  2. 安卓手机使用前置摄像头
  3. 再把鼻子涂黑的飞鸽沟通最简单
  4. css 3d魔方源代码,CSS3 3D环境实现立体 魔方效果代码(示例代码)
  5. 【证明】—— 二叉树的相关证明
  6. HttpServlet使用@WebServlet注解
  7. java 反射机制及其应用
  8. spring实现mqtt服务端_SpringBoot--实战开发--MQTT消息推送(六十)
  9. Android中解析XML的方法
  10. 10月11 小结: 你又贪玩了不是?
  11. django mysql socket_django mysql 读写分离
  12. loacallhost:80被占用解决方法
  13. 川师c语言实验报告9,川师c语言实验报告十.doc
  14. 颠覆Web前端开发的HTML5技术
  15. C++中toupper、tolower 、isalpha、isalnum、isdigit、islower、isupper、isblank、isspace的用法
  16. java做 binggo,CONTRIBUTING.md
  17. php 处理eml,php读取eml范例、php解析eml、eml解析成网页
  18. libmp4v2的编译及简单DEMO
  19. [Xilinx FPGA] #4 Xilinx FPGA 芯片命名规则与查询方法
  20. Linux内存memtest,详细讲解 Linux极品内存检测软件 Memtest86

热门文章

  1. 百度招聘的一个小彩蛋
  2. EF Code First 更新数据库, 数据库迁移
  3. threejs中引入draco压缩后的模型
  4. Matlab中pause语句
  5. 后台管理进程GameMaster
  6. 二级域名设置解析方法
  7. NOIP 模拟题 国际跳棋
  8. Python学习笔记哈哈哈
  9. python中国大学慕课平台_乐学Python,中国大学MOOC(慕课)答案公众号搜题
  10. 读《我怎样设计飞机》