//POJ3377
//DP解法-解有规律的最短路问题
//Time:1157Ms Memory:12440K
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std; #define MAXN 1000005 typedef long long LL; int n;
int dp[MAXN][3];
int sr, st, er, ed;
int main()
{
//freopen("in.txt", "r", stdin);
while(scanf("%d", &n), n)
{
scanf("%d%d%d%d", &sr,&st,&er,&ed);
if(st > ed)
{
swap(st, ed);
swap(sr, er);
}
for(int i = 1; i <= n; i++)
scanf("%d", &dp[i][0]);
for(int i = 0; i <= n; i++)
scanf("%d", &dp[i][2]);
for(int i = 1; i <= n; i++)
scanf("%d", &dp[i][1]); //更新st从左侧到达对岸的最短路
for(int i = st, w = 0; i > 0; i--)
{
w += dp[i][0] + dp[i][1]; //间接走陆路的路长和
dp[st][2] = min(dp[st][2], w + dp[i-1][2]);
if(w >= dp[st][2]) break;
} //更新ed从右侧到达对岸的最短路
for(int i = ed+1, w = 0; i <= n; i++)
{
w += dp[i][0] + dp[i][1];
dp[ed][2] = min(dp[ed][2], w + dp[i][2]);
if(w >= dp[ed][2]) break;
} LL dis[2];
dis[sr] = 0; //起始点右移最短路
dis[!sr] = dp[st][2]; //对岸右移最短路
for(int i = st + 1; i <= ed; i++)
{
int x = dp[i][sr], y = dp[i][!sr]; //该点与对岸到达右一点的路长
int z = dp[i][2]; //右侧水路长
LL tmp = dis[sr];
dis[sr] = min(dis[sr] + x, dis[!sr] + y + z);
dis[!sr] = min(dis[!sr] + y, tmp + x + z);
}
printf("%lld\n", dis[er]);
}
return 0;
}

ACM/ICPC 之 DP解有规律的最短路问题(POJ3377)的更多相关文章

  1. ACM/ICPC 之 DP进阶(51Nod-1371(填数字))

    原题链接:填数字 顺便推荐一下,偶然看到这个OJ,发现社区运营做得很赞,而且交互和编译环境都很赞(可以编译包括Python,Ruby,Js在内的脚本语言,也可以编译新标准的C/C++11,甚至包括Go ...

  2. 2016 ACM/ICPC Asia Regional Shenyang Online 1009/HDU 5900 区间dp

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  3. 2016 ACM/ICPC Asia Regional Shenyang Online 1007/HDU 5898 数位dp

    odd-even number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  4. HDU 5000 2014 ACM/ICPC Asia Regional Anshan Online DP

    Clone Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/65536K (Java/Other) Total Submiss ...

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

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

  6. 2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest

    2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest A - Arranging Wine 题目描述:有\(R\)个红箱和\(W\)个白箱,将这 ...

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

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

  8. hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...

  9. 2016 ACM/ICPC Asia Regional Dalian Online 1006 /HDU 5873

    Football Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

随机推荐

  1. Android样式和主题

    样式:style--> 主题:theme--> <style name="my_style"> <item name="android:te ...

  2. DeepMind背后的人工智能:深度学习原理初探

    去年11月,一篇名为<Playing Atari with Deep Reinforcement Learning>的文章被初创人工智能公司DeepMind的员工上传到了arXiv网站.两 ...

  3. [转] JAVA读取excel数据(插入oracle数据库)

    原文地址:http://blog.csdn.net/zczzsq/article/details/16803349 本实例做的是读取execl(只能读取.xls的execl,即只能读取03版的),如果 ...

  4. thinkphp-二次开发1

    Thinkphp是一个国人使用的比较多的一个框架 ,具体的也不多了,不知道的可以去百度一下. 现在我们要讲的是如何利用现有的半成品的系统实现二次开发 讲到thinkphp的二次开发不得不说他的兄弟on ...

  5. JS三大特性

    抽象 在分析三大特性之前我们要先了解什么叫抽象. 定义: 在定义一个类的时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板),这种研究问题的方法就称为抽象 一.封装 定义: ...

  6. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

  7. C语言产生标准正态分布或高斯分布随机数

    C语言 产生标准正态分布或高斯分布 随机数 产生正态分布或高斯分布的三种方法: 1. 运用中心极限定理(大数定理) #include #include #define NSUM 25 double g ...

  8. 多Form界面控件状态变化问题分析

    假定有frmA,frmB,frmC三个界面,当frmA中触发显示frmC与frmB触发显示frmC时显示界面不同,或者让frmC上的某个按钮不可用,此时应该在如何来控制frmC的显示.是采用在frmC ...

  9. Demo 版

    Demo1   美食网站 Demo2   12301智慧旅游公共服务平台 Demo3   react_and_koa example

  10. SQL Server 2016 RC0 安装(超多图)

    微软最新版本的数据库SQL Server 2016在2016年3月9日推出了RC0版本.已经提供了包括简体中文等多种语言版本,不过联机丛书还是英文版的.对OS的要求是WIN8,WIN10, WIN20 ...