spfa+dp;

刚刚开始一直想不通怎么判断他是否换了道;

后来才知道,将那个时间段打包,找出这段时间内的最短路;

真是太奇妙了!

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define inf 1e6
using namespace std; int map[][];
int pass[][];
int d[],inq[];
int n,m,k,e;
int dp[];
int spfa(int s,int t)
{
queue<int>q;
for(int i=; i<=m; i++)
{
d[i]=inf;
inq[i]=;
}
d[]=;
q.push();
while(!q.empty())
{
int u=q.front();
q.pop();
inq[u]=;
for(int i=; i<=m; i++)
{
if(map[u][i]&&(pass[i][t]==pass[i][s])&&(d[i]>d[u]+map[u][i]))
{
d[i]=d[u]+map[u][i];
if(!inq[i])
{
inq[i]=;
q.push(i);
}
}
}
}
return d[m];
} int main()
{
int a,b,c,p;
scanf("%d%d%d%d",&n,&m,&k,&e);
while(e--)
{
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]==||map[a][b]>c)
map[a][b]=map[b][a]=c;
}
scanf("%d",&p);
while(p--)
{
scanf("%d%d%d",&a,&b,&c);
for(int i=b; i<=c; i++)
pass[a][i]=;
}
for(int i=; i<=m; i++)
for(int j=; j<=n; j++)
pass[i][j]=pass[i][j-]+pass[i][j];
for(int i=; i<=n; i++)
{
dp[i]=inf;
for(int j=; j<i; j++)
dp[i]=min(dp[i],dp[j]+spfa(j,i)*(i-j)+k);
}
printf("%d\n",dp[n]-k);
return ;
}

1003: [ZJOI2006]物流运输trans的更多相关文章

  1. BZOJ 1003 [ZJOI2006]物流运输trans

    1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4242  Solved: 1765[Submit] ...

  2. BZOJ 1003: [ZJOI2006]物流运输trans(最短路+dp)

    1A,爽! cost[i][j]表示从第i天到第j天不改路线所需的最小花费,这个可以用最短路预处理出.然后dp(i)=cost[j][i]+dp(j-1)+c. c为该路线的花费. --------- ...

  3. 【BZOJ】1003: [ZJOI2006]物流运输trans(SPFA+DP)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1003 这题一开始看是不会的额,,,还是看题解了..一开始我觉得不能用最短路啥的,,看了题解发现这是d ...

  4. 【BZOJ1003】1003: [ZJOI2006]物流运输trans SPFA+DP

    Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...

  5. BZOJ 1003: [ZJOI2006]物流运输trans DP+最短路

    Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...

  6. BZOJ 1003 [ZJOI2006]物流运输trans ★(Dijkstra + DP)

    题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=1003 思路 先Dijkstra暴力求出i..j天内不变换路线的最少花费,然后dp[i] = ...

  7. 1003: [ZJOI2006]物流运输trans - BZOJ

    Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...

  8. BZOJ 1003 [ZJOI2006]物流运输trans SPFA+DP

    题意:链接 方法:SPFA+DP 解析:挺好的题目.因为数据范围较小所以用这样的方式能够搞,只是也是挺不好想的. 我们定义cost(i,j)表示从第i天走到第j天运用同一种方式的最小花费,然后因为数据 ...

  9. BZOJ 1003 ZJOI2006 物流运输trans 动态规划+SPFA

    标题效果:给定一个无向图.输送n日,有一天的某一时刻不能去,更换行考虑k,求总成本 一阶cost[i][j]用于第一i为了天j天正在同一航线的最低消费 这种利用SPFA处理 然后就是移动的法规问题 订 ...

随机推荐

  1. Divide and conquer method

    分治法是最广泛使用的算法设计方法之一,其基本思想:把大问题分解成一些较小的问题,然后由小问题的解方便地构造出大问题的解. 分治法说穿了就是把问题放小,如果被分的问题还是比较大,那么久继续分下去.为了能 ...

  2. dig命令浅析

    dig命令,功能更强大的命令. man dig dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] \ [-p ...

  3. 如何在Xilinx ISE中使用TCL提高工作效率

    http://wenku.baidu.com/link?url=jxtsPLGUlWwYuD8TtfWYYU_NhY5Qty3rx8ZDLCkINLe39JRGb90V5HoJhnkn9r_PQ6vZ ...

  4. [记录]calculate age based on date of birth

    calculate age based on date of birth know one new webiste:eval.in run php code

  5. 关于IO的一些数字

    http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/people ...

  6. ### About Multi-Object Tracking

    点击查看Evernote原文. #@author: gr #@date: 2014-10-17 #@email: forgerui@gmail.com Multi_Object Tracking Fr ...

  7. [PR & ML 4] [Introduction] Model Selection & The Curse of Dimension

    这两部分内容比较少,都是直觉上的例子和非正式的定义,当然这本书中绝大多数定义都是非正式的,但方便理解.后面深入之后会对这两个章节有详细的阐述.

  8. 九度OJ 1510 替换空格

    题目地址:http://ac.jobdu.com/problem.php?pid=1510 题目描述: 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We ...

  9. OpenJudge 2694 逆波兰表达式

    1.链接地址: http://bailian.openjudge.cn/practice/2694/ 2.题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 逆波兰表达式是一种把运算 ...

  10. C# 读取快捷方式指向的文件

    C# 读取快捷方式指向的文件 [Flags()] public enum SLR_FLAGS { SLR_NO_UI = 0x1, SLR_ANY_MATCH = 0x2, SLR_UPDATE = ...