Bicriterial routing 双调路径 HYSBZ - 1375(分层最短路)
Description
Input
Output
Sample Input
2 1 2 1
3 4 3 1
2 3 1 2
3 1 1 4
2 4 2 4
Sample Output
HINT

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <queue>
#define inf 0x3f3f3f3f
#define maxc (n-1)*100
using namespace std;
struct edge
{
int y,ne,c,t;
}e[];
struct now
{
int p,c;
};
int tot=,n,m;
struct data
{
int t,f;
}d[][];
int s,t,h[],inq[][];
void Addedge(int x,int y,int co,int ti)
{
tot++;
e[tot].y=y;
e[tot].ne=h[x];
h[x]=tot;
e[tot].c=co;
e[tot].t=ti;
}
void spfa()
{
for (int i=;i<=n;i++)
for (int j=;j<=maxc;j++)
d[i][j].f=,inq[i][j]=,d[i][j].t=inf;
queue<now> q;
now x;
x.p=s,x.c=;
d[s][].f=,d[s][].t=;
inq[s][]=;
q.push(x);
while (!q.empty())
{
x=q.front();
q.pop();
inq[x.p][x.c]=;
for (int i=h[x.p];i;i=e[i].ne)
{
int y=e[i].y;
int co=e[i].c+x.c;
if (co>maxc) continue;
if (d[y][co].t>d[x.p][x.c].t+e[i].t)
{
d[y][co].t=d[x.p][x.c].t+e[i].t;
d[y][co].f=;
if (!inq[y][co])
{
now aa;
aa.p=y,aa.c=co;
q.push(aa),inq[y][co]=;
}
}
}
}
}
int main()
{
scanf("%d%d%d%d",&n,&m,&s,&t);
for (int i=;i<=m;i++)
{
int x,y,ti,co;
scanf("%d%d%d%d",&x,&y,&co,&ti);
Addedge(x,y,co,ti);
Addedge(y,x,co,ti);
}
spfa();
int ans=,minn=maxc+;
for (int i=;i<=maxc;i++)
{
if (!d[t][i].f) continue;
if (d[t][i].t>=minn) continue;
minn=d[t][i].t;
ans++;
}
cout<<ans<<endl;
return ;
}
2 1 2 1
3 4 3 1
2 3 1 2
3 1 1 4
2 4 2 4
Sample Output2Hint
Bicriterial routing 双调路径 HYSBZ - 1375(分层最短路)的更多相关文章
- [bzoj1375] [Baltic2002] Bicriterial routing 双调路径
Description 如今的道路收费发展很快.道路的密度越来越大,因此选择最佳路径是很现实的问题.城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用. 路径是连续经过的道路组成的.总时间 ...
- bzoj1375 双调路径
Description 来越多,因此选择最佳路径是很现实的问题.城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用.路径由连续的道路组成.总时间是各条道路旅行时间的和,总费用是各条道路所支 ...
- 题解 P5530 [BalticOI 2002]双调路径
P5530 [BalticOI 2002]双调路径 输入样例: 4 5 1 4 2 1 2 1 3 4 3 1 2 3 1 2 3 1 1 4 2 4 2 4 样例如下图 样例说明: 从1到4有4条路 ...
- P5530 [BOI 2002]双调路径
题意描述 [BOI 2002]双调路径 题意描述的确实不是很清楚(出题人惜字如金). 给定一张有 \(n\) 个点,\(m\) 条边的无向图,每条边有两个权值,分别表示经过这个点的代价和时间. 同时给 ...
- ROADS POJ - 1724(分层最短路)
就是在最短路的基础上 多加了一个时间的限制 , 多一个限制多一维就好了 记住 分层最短路要用dijistra !!! #include <iostream> #include < ...
- 拯救大兵瑞恩 HDU - 4845(状压bfs || 分层最短路)
1.状压bfs 这个状压体现在key上 我i们用把key状压一下 就能记录到一个点时 已经拥有的key的种类 ban[x1][y1][x2][y1]记录两个点之间的状态 是门 还是墙 还是啥都没有 ...
- ACM-ICPC 2018 南京赛区网络预赛 L && BZOJ 2763 分层最短路
https://nanti.jisuanke.com/t/31001 题意 可以把k条边的权值变为0,求s到t的最短路 解析 分层最短路 我们建立k+1层图 层与层之间边权为0,i 向 i+1层转 ...
- 分层最短路(牛客第四场)-- free
题意: 给你边权,起点和终点,有k次机会把某条路变为0,问你最短路是多长. 思路: 分层最短路模板题.题目有点坑(卡掉了SPFA,只能用dijkstra跑的算法). #include<iostr ...
- 牛客练习赛47 D DongDong坐飞机 (分层最短路)
链接:https://ac.nowcoder.com/acm/contest/904/D 来源:牛客网 DongDong坐飞机 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...
随机推荐
- SkylineGlobe MFC C++ 开发示例代码
SkylineGlobe的SDK底层是跨平台的C++内核,面向不同平台封装原生的API,具有很高的执行效率, 下面是C++二次开发时的示例代码: #import "D:\Program Fi ...
- Topographic ICA as a Model of Natural Image Statistics(作为自然图像统计模型的拓扑独立成分分析)
其实topographic independent component analysis 早在1999年由ICA的发明人等人就提出了,所以不算是个新技术,ICA是在1982年首先在一个神经生理学的背景 ...
- SQL中char、varchar、nvarchar、ntext的区别(转载)
char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.nvarchar(n ...
- CF1056E Check Transcription 字符串哈希
传送门 暴力枚举\(0\)的长度,如果对应的\(1\)的长度也是一个整数就去check是否合法.check使用字符串哈希. 复杂度看起来是\(O(st)\)的,但是因为\(01\)两个数中数量较多的至 ...
- [Oracle]Master表字段扩张时的对应方法
Master表字段扩张时的对应方法 如果Master表的数据量很大,Master表中的列,宽度扩张了,MVIEW表如何对应处理? 此时,重建MVIEW可能会耗费很长的时间. 可以采用 alter ma ...
- 【强化学习】python 实现 q-learning 例四(例二改写)
将例二改写成面向对象模式,并加了环境! 不过更新环境的过程中,用到了清屏命令,play()的时候,会有点问题.learn()的时候可以勉强看到:P 0.效果图 1.完整代码 相对于例一,修改的地方: ...
- .NET CORE下的Cache
.NET CORE 下的缓存跟之前ASP.NET下的缓存有所不同,应用.NET CORE缓存首先需要引入Microsoft.Extensions.Caching.Memory程序包 下面简单写了一个C ...
- postgresql总结
这篇博客主要对PostgreSQL进行总结,内容偏基础. 这里先附上一个PostgreSQL的中文资源:PostgreSQL 8.1 中文文档.英文不好的同学可以看看这个. 安装PostgreSQL ...
- javascript调用ActiveX接口失败的解决方案及使用心得
前段时间公司做了个比较大的项目,需要用到ocx控件,我厂大部分项目都采用C#.net,而winform程序条用ocx控件接口是相对简单的,但是javascript调用ocx接口,却和winform的用 ...
- slurmdbd.conf系统初始配置
# Archive info ArchiveJobs=yes ArchiveDir=/usr/local/globle/softs/slurm/16.05.3/archive/ ArchiveStep ...