BZOJ1395 : [Baltic2005]Trip
建立新图,原图中每条边在新图中是点,新图中每个点的点权为$-e[i].c+e[i].b$,边权为$0$。
若$e[i].d\leq e[j].a$,则连一条$i$到$j$的单向边。
对于原图中每个点,将所有入边和出边分别排序,然后建立一排虚点表示后缀,通过双指针将边数优化至$O(m)$。
在新图中求出最短路,最后将答案加上$T$即可。
注意到新图是个DAG,因此可以记搜求解。
时间复杂度$O(m\log m)$。
#include<cstdio>
#include<algorithm>
const int N=50010,M=100010;
int n,m,cnt,P,T,i,j,k,gi[N],go[N],g[M*2],v[M*5],nxt[M*5],ed,a[M],b[M],ca,cb,vis[M*2],f[M*2],ans;
struct E{int x,y,a,b,c,d;}e[M];
inline bool cmpa(int x,int y){return e[x].d<e[y].d;}
inline bool cmpb(int x,int y){return e[x].a<e[y].a;}
inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
inline void add(int*g,int x,int y){v[++ed]=y;nxt[ed]=g[x];g[x]=ed;}
inline void up(int&x,int y){if(x>y)x=y;}
int dp(int x){
if(vis[x])return f[x];
vis[x]=1;
int&t=f[x];
t=1;
if(x<=m)if(e[x].x==1)t=0;
for(int i=g[x];i;i=nxt[i])up(t,dp(v[i]));
if(t<1&&x<=m)t+=e[x].b-e[x].c;
return t;
}
int main(){
read(n),read(m),read(P),read(T);
for(i=1;i<=m;i++){
read(e[i].x),read(e[i].y),read(e[i].a),read(e[i].b),read(e[i].c),read(e[i].d);
add(go,e[i].x,i);
add(gi,e[i].y,i);
}
cnt=m;
for(i=1;i<=n;i++){
for(ca=0,j=gi[i];j;j=nxt[j])a[++ca]=v[j];
if(!ca)continue;
for(cb=0,j=go[i];j;j=nxt[j])b[++cb]=v[j];
if(!cb)continue;
std::sort(a+1,a+ca+1,cmpa);
std::sort(b+1,b+cb+1,cmpb);
for(j=1;j<=cb;j++){
if(j<cb)add(g,cnt+j+1,cnt+j);
add(g,b[j],cnt+j);
}
for(j=ca,k=cb+1;j;j--){
while(k>1&&e[a[j]].d<=e[b[k-1]].a)k--;
if(k<=cb)add(g,cnt+k,a[j]);
}
cnt+=cb;
}
if(P!=1)ans=1;
for(i=1;i<=m;i++)if(e[i].y==P&&e[i].d<=T){
dp(i);
if(f[i]<1)up(ans,f[i]);
}
if(ans>0)ans=-1;else ans+=T;
return printf("%d",ans),0;
}
BZOJ1395 : [Baltic2005]Trip的更多相关文章
- BZOJ 1395 [Baltic2005]Trip(最短路+DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1354 [题目大意] 给出一些车的班次,包括起点,终点,到达起点时间区间, 到达终点时间 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- Lesson 4 An existing trip
Text I have just received a letter from my brother,Tim. He is in Australia. He has been there for si ...
- dp or 贪心 --- hdu : Road Trip
Road Trip Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 29 ...
- 【poj1041】 John's trip
http://poj.org/problem?id=1041 (题目链接) 题意 给出一张无向图,求字典序最小欧拉回路. Solution 这鬼畜的输入是什么心态啊mdzz,这里用vector储存边, ...
- 1301. The Trip
A number of students are members of a club that travels annually to exotic locations. Their destinat ...
- 三分 --- POJ 3301 Texas Trip
Texas Trip Problem's Link: http://poj.org/problem?id=3301 Mean: 给定n(n <= 30)个点,求出包含这些点的面积最小的正方形 ...
- 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem C: The Trip(水题)
Problem C: The Trip Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 19 Solved: 3[Submit][Status][Web ...
- hdu 3018 Ant Trip 欧拉回路+并查集
Ant Trip Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...
随机推荐
- 转载:Linux内核参数的优化(1.3.4)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19615.html 由于默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改 ...
- [Java]求文件大小并保留两位小数(文件大小是一个长整型数单位是Byte)
前言 为了获得一堆apk的大小,并与人类友好方式显示.本来是打算用以下方法,到时不能具体到保留两位小数. org.apache.commons.io.FileUtils.byteCountToDisp ...
- HTML中的锚点设置和table格式
锚点设置: <a href="#1">锚点</a> <a name="1"></a> table表格格式: &l ...
- Oracle11g_OCM 课堂教学目录表
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- Jquery----属性的利用
属性操作: 1.属性 属性(如果你的选择器选出了多个对象,那么默认只会返回出第一个属性). attr(属性名|属性值) - 一个参数是获取属性的值,两个参数是设置属性值 - 点击加载图片示例 remo ...
- 性能测试三十九:Jprofiler分析CPU过高和响应时间长的问题
使用Jprofiler监控分析案例 一.cpu负载过高:http://localhost:8080/PerfTeach/CpuTopServlet?id=1 cpu消耗高的可能原因1.使用了复杂的算法 ...
- js计时器 setInterval与clearInterval
var timer = setInterval(函数, 毫秒数) 功能:每隔对应的毫秒数执行一次函数. 返回值:系统没启动一个定时器,就会给一个标识,返回值就是这个定时器的编号. clearInter ...
- Spring集成shiro做登陆认证
一.背景 其实很早的时候,就在项目中有使用到shiro做登陆认证,直到今天才又想起来这茬,自己抽空搭了一个spring+springmvc+mybatis和shiro进行集成的种子项目,当然里面还有很 ...
- CSS3:HSL和HSLA
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- HTTP协议特点
1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行--请求行用于描述客户端的请求方式.请求的资源名称,以及使用的HTTP协议版本号 请 ...