这道题稍复杂一些,需要掌握字符串输入的处理+限制了可以行走的时间。


ZOJ1791(POJ1613)-Cave Raider

//限制行走时间的最短路
//POJ1613-ZOJ1791
//Time:16Ms Memory:324K
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std; #define MAX 505
#define MAXT 55
#define MAXS MAXT*3
#define INF 0x3f3f3f3f struct Edge {
int u, v, w;
int t[MAXT], lt; //lt:开启与关闭时间点总和
}e[MAX]; int n, m, s, t;
int d[MAXT]; void bellman_ford()
{
memset(d, 0x3f, sizeof(d));
d[s] = 0;
for (int i = 1; i <= n; i++)
for (int j = 0; j < m; j++)
for (int k = 1; k <= e[j].lt; k += 2)
{
int u = e[j].u, v = e[j].v;
//tu:从u出发到v的时间
int tu = max(d[u], e[j].t[k - 1]) + e[j].w;
int tv = max(d[v], e[j].t[k - 1]) + e[j].w;
if (tu <= e[j].t[k] || tv <= e[j].t[k]) //几次WA是因为没有取'='
{
if (tv <= e[j].t[k]) d[u] = min(d[u], tv);
if (tu <= e[j].t[k]) d[v] = min(d[v], tu);
break;
}
}
} int main()
{
char str[MAXS];
while (scanf("%d", &n), n)
{
memset(e, 0, sizeof(e));
scanf("%d%d%d", &m, &s, &t);
for (int i = 0; i < m; i++)
{
scanf("%d%d%d", &e[i].u, &e[i].v, &e[i].w);
e[i].lt = 1;
cin.getline(str, MAXS);
int len = strlen(str);
for (int j = 0; j < len; j++)
{
bool flag = false; //有无数值
while (str[j] >= '0' && str[j] <= '9')
{
e[i].t[e[i].lt] = e[i].t[e[i].lt] * 10 + str[j++] - '0';
flag = true; //已记录数值
}
if (flag) e[i].lt++;
}
e[i].t[e[i].lt] = INF; //偶数时当做+∞,奇数时无用
} bellman_ford();
if (d[t] == INF) printf("*\n");
else printf("%d\n", d[t]);
}
return 0;
}

ACM/ICPC 之 Bellman Ford练习题(ZOJ1791(POJ1613))的更多相关文章

  1. ACM/ICPC 之 最短路径-Bellman Ford范例(POJ1556-POJ2240)

    两道Bellman Ford解最短路的范例,Bellman Ford只是一种最短路的方法,两道都可以用dijkstra, SPFA做. Bellman Ford解法是将每条边遍历一次,遍历一次所有边可 ...

  2. 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛

    比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...

  3. ACM/ICPC 之 SPFA范例两道(POJ3268-POJ3259)

    两道以SPFA算法求解的最短路问题,比较水,第二题需要掌握如何判断负权值回路. POJ3268-Silver Cow Party //计算正逆最短路径之和的最大值 //Time:32Ms Memory ...

  4. ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

  5. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 G. Garden Gathering

    Problem G. Garden Gathering Input file: standard input Output file: standard output Time limit: 3 se ...

  6. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 D. Delay Time

    Problem D. Delay Time Input file: standard input Output file: standard output Time limit: 1 second M ...

  7. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...

  8. 【转】lonekight@xmu·ACM/ICPC 回忆录

    转自:http://hi.baidu.com/ordeder/item/2a342a7fe7cb9e336dc37c89 2009年09月06日 星期日 21:55 初识ACM最早听说ACM/ICPC ...

  9. 【转】ACM/ICPC生涯总结暨退役宣言—alpc55

    转自:http://hi.baidu.com/accplaystation/item/ca4c2ec565fa0b7fced4f811 ACM/ICPC生涯总结暨退役宣言—alpc55 前言 早就该写 ...

随机推荐

  1. MySQL中MAX函数与Group By一起使用的注意事项(转)

    mysql> select * from test; +----+-------+------+-------+ | id | name | age | class | +----+------ ...

  2. JavaScript 学习笔记 -- String.trim + format

    最近仍在IE6徘徊,低版本的浏览器没有实现JavaScript 的trim() 和 format(). . 主要是这两个使用的比较多,先整理出来: 1.trim() -- 去除字符串中开始和结尾部分, ...

  3. webpack入门(一)——webpack 介绍

    如今的网站正在演化为web应用程序: 1. 越来越多的使用JavaScript. 2. 现代浏览器提供更广泛的接口. 3. 整页刷新的情况越来越少,甚至更多代码在同一个页面.(SPA) 因此有很多代码 ...

  4. 高效的使用 Response.Redirect

    介绍: 我正在评估一个 ASP.NET Web 项目应用.它有一些可扩展性问题.意味着当网站访问量增加的时候.系统将会变得缓慢.当我查看应用日志.我找到了大量的 ThreadAbortExceptio ...

  5. 2015年12月13日 spring初级知识讲解(四)面向切面的Spring

    2015年12月13日 具体内容待补充...

  6. 清北国庆day1 (脑)残

    (留坑) /* 不知道为什要找的循环节TM这么长 */ #include<cstdio> #include<cstdlib> #include<cstring> u ...

  7. C++模板学习

    一.定义函数模板 template<class T> 函数定义 举个例子比较两个数大小: template<class T> int Compare(T a,T b) { ; ...

  8. maven之helloworld案例

    1.maven目录结构 src -main -java -package -test -java -package -resources 2.新建目录 在任意指定盘下建文件夹(我的是D盘,目录结构如下 ...

  9. 读w3c中文教程对键盘事件解释的感想 -遁地龙卷风

    写这篇博文源于w3c中文教程对键盘事件的解释, onkeydown 某个键盘按键被按下 onkeypress 某个键盘按键被按下并松开 onkeyup 某个键盘按键被松开 可在实践中发现 只注册key ...

  10. 如何根据屏幕大小改变class的css样式

    /*当屏幕小于1200px*/ @media (max-width:1200px) { ...} 此处针对所有小于1200px屏幕的css属性. /*当屏幕小于1200px且大于992px*/ @me ...