【COGS 254】【POI 2001】交通网络图
http://www.cogs.top/cogs/problem/problem.php?pid=254
dist[i]表示能最早到达i点的时间。这样就可以用最短路模型来转移了。
#include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1003;
const int K = 2003;
int in() {
int k = 0, fh = 1; char c = getchar();
for(; c < '0' || c > '9'; c = getchar())
if (c == '-') fh = -1;
for(; c >= '0' && c <= '9'; c = getchar())
k = (k << 3) + (k << 1) + c - '0';
return k * fh;
} struct que {
int id, dist;
que(int _id = 0, int _dist = 0) : id(_id), dist(_dist) {}
bool operator < (const que &A) const {
return dist > A.dist;
}
};
struct node {int nxt, to, w, c, sum;} E[10003];
int gx, mx, x, y, n, k, cnt = 0, point[N];
int p[N], r[N], dist[N], pre[N], note[N];
bool vis[N]; void ins(int u, int v, int w, int c, int sum) {
E[++cnt] = (node) {point[u], v, w, c, sum}; point[u] = cnt;
} int cal(int a, int b, int c) {
a = a % c; b = b % c;
if (a >= b) return a - b;
else return a - b + c;
} void dijkstra() {
priority_queue <que> q;
q.push(que(x, dist[x]));
que u; int t;
while (!q.empty()) {
u = q.top(); q.pop();
if (vis[u.id]) continue;
vis[u.id] = true;
for(int i = point[u.id]; i; i = E[i].nxt)
if ((t = (dist[u.id] + cal(E[i].sum, dist[u.id], E[i].c) + E[i].w)) < dist[E[i].to])
dist[E[i].to] = t, q.push(que(E[i].to, t));
}
} int main() {
freopen("pod.in", "r", stdin);
freopen("pod.out", "w", stdout);
n = in(); k = in(); x = in(); y = in(); gx = in(); mx = in();
int s, c, ret;
for(int i = 1; i <= k; ++i) {
s = in(); c = in();
for(int i = 1; i <= s; ++i)
p[i] = in();
for(int i = 1; i < s; ++i)
r[i] = in();
ret = 0;
for(int i = 1; i < s; ++i) {
ins(p[i], p[i + 1], r[i], c, ret);
ret += r[i];
}
ret = 0;
for(int i = s - 1; i >= 1; --i) {
ins(p[i + 1], p[i], r[i], c, ret);
ret += r[i];
}
} memset(dist, 127, sizeof(int) * (n + 1));
dist[x] = mx;
dijkstra(); ret = dist[y];
printf("%d %d\n", (gx + ret / 60) % 24, ret % 60); return 0;
}
【COGS 254】【POI 2001】交通网络图的更多相关文章
- [POI 2001+2014acm上海邀请赛]Gold Mine/Beam Cannon 线段树+扫描线
Description Byteman, one of the most deserving employee of The Goldmine of Byteland, is about to re ...
- POI 2001 Goldmine 线段树 扫描线
题目链接 http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=1350 http://main.edu.pl/en/archive/oi/8/kop ...
- hdu 1814 Peaceful Commission (2-sat 输出字典序最小的路径)
Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Peaceful Commission
Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 【C#数据结构系列】图
一:图 图状结构简称图,是另一种非线性结构,它比树形结构更复杂.树形结构中的结点是一对多的关系,结点间具有明显的层次和分支关系.每一层的结点可以和下一层的多个结点相关,但只能和上一层的一个结点相关.而 ...
- HDU1814(2-SAT)
Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- 一本通1625【例 1】反素数 Antiprime
反素数 Antiprime 题目描述 原题来自:POI 2001 如果一个大于等于 1 的正整数 n,满足所有小于 n 且大于等于 1 的所有正整数的约数个数都小于 n 的约数个数,则 n 是一个反素 ...
- HDOJ 1814 Peaceful Commission
经典2sat裸题,dfs的2sat能够方便输出字典序最小的解... Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Mem ...
- HDU1814 2-sat 模板
Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
随机推荐
- 单机搭建Android开发环境(二)
前文介绍了如何优化SSD和内存,以发挥开发主机的最佳性能,同时提到在SSD上创建虚拟机.为什么不装双系统呢?双系统性能应该会更好!采用Windows+虚拟机的方式,主要是考虑到安卓开发和日常办公两方面 ...
- UVALive 5000 Underwater Snipers --二分
题意:一条河岸线y=k,y>k区域有n个敌人,现在要在y<=k区域布置S个狙击手,狙击手的狙击范围为距离自己半径为D的圆内,问满足能够狙死所有的敌人的情况下,离河岸线最近的那个狙击手的离河 ...
- [转] 如何设置Eclipse的上网代理
from: http://blog.csdn.net/qq635785620/article/details/8191799 不同版本的eclipse有不同的设置方法 方式一: 默认的Eclips ...
- css相关问题
display:none和visibility:hidden的区别? 前几天遇到的这个问题,表格布局:::::display:none 隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢 ...
- flask01 安装及初涉
一.安装 1.pip的安装 $ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py $ python get-pip.p ...
- asp.net core 日志
日志输出是应用程序必不可少的部分,log4net,nlog这些成熟的组件在之前的项目中被广泛使用,在asp.net core的项目中没有找到与之对应的log4net版本,nlog对core提供了很好的 ...
- QT QT练习一
界面中通过三个 QLineEdit控件,一个QPushButton实现+ - * /四则运算,点击pushbutton后将运算结果显示在QLabel控件上. #ifndef WIDGET_H #def ...
- JBOSS只能本机localhost和127.0.0.1能访问的解决
一句话: %jboss_home%\bin>standalone.bat -Djboss.bind.address=0.0.0.0 也可以直接编辑standalone.xml,将里面所有127. ...
- Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程
Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...
- CUDA2.2-原理之存储器访问
本小节来自<大规模并行处理器编程实战>第四节,该书是很好的从内部原理结构上来讲述了CUDA的,对于理解CUDA很有帮助,借以博客的形式去繁取间,肯定会加入自己个人理解,所以有错误之处还望指 ...