【ZJOI 2006】 物流运输
【题目链接】
【算法】
令cost(i,j) = 第i天到第j天走相同的路线,路线长度的最小值
那么,只需筛选出第i天到第j天可以装卸货物的码头,然后将这些码头之间连边,跑弗洛伊德(或其它最短路算法),即可
然后,我们用f[i]表示前i天,总成本最小是多少,显然有 :
f[i] = max{f[j-1] + cost(j,i) * (i - j + 1) + k}
特别地,f[0] = -k
那么,最后的答案就是f[n]
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MAXN 110
#define MAXM 30
const long long INF = 2e9; long long n,m,k,e,i,j,u,v,w,d,a,b,pos;
long long g[MAXM][MAXM],mark[MAXM][MAXN],f[MAXN]; inline long long calc(long long l,long long r)
{
long long i,j,k;
static bool flag[MAXM];
static long long dist[MAXM][MAXM];
memset(flag,false,sizeof(flag));
for (i = ; i <= m; i++)
{
for (j = l; j <= r; j++)
{
flag[i] |= mark[i][j];
}
}
for (i = ; i <= m; i++)
{
for (j = ; j <= m; j++)
{
if (i == j) dist[i][j] = ;
else if ((!flag[i]) && (!flag[j])) dist[i][j] = g[i][j];
else dist[i][j] = INF;
}
}
for (k = ; k <= m; k++)
{
for (i = ; i <= m; i++)
{
if (i == k) continue;
for (j = ; j <= m; j++)
{
if (i == j || k == j) continue;
dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j]);
}
}
}
return dist[][m];
} int main() { scanf("%lld%lld%lld%lld",&n,&m,&k,&e);
for (i = ; i <= m; i++)
{
for (j = ; j <= m; j++)
{
if (i != j) g[i][j] = INF;
}
}
for (i = ; i <= e; i++)
{
scanf("%lld%lld%lld",&u,&v,&w);
g[u][v] = g[v][u] = min(g[u][v],w);
}
scanf("%lld",&d);
for (i = ; i <= d; i++)
{
scanf("%lld%lld%lld",&pos,&a,&b);
mark[pos][a]++; mark[pos][b+]--;
}
for (i = ; i <= m; i++)
{
for (j = ; j <= n; j++)
{
mark[i][j] += mark[i][j-];
}
} f[] = -k;
for (i = ; i <= n; i++) f[i] = INF;
for (i = ; i <= n; i++)
{
for (j = i; j >= ; j--)
{
f[i] = min(f[i],f[j-] + calc(j,i) * (i - j + ) + k);
}
} printf("%lld\n",f[n]); return ; }
【ZJOI 2006】 物流运输的更多相关文章
- [ZJOI 2006]物流运输
Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...
- [BZOJ1003](ZJOI 2006) 物流运输trans
[题目描述] 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟 ...
- ZJOI 2006 物流运输 bzoj1003
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...
- 【BZOJ1003】【ZJOI2006】物流运输
1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2556 Solved: 1008[Submit] ...
- BZOJ 1003 物流运输 题解 【SPFA+DP】
BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...
- BZOJ1003 物流运输 最短路+DP
1003: [ZJOI2006]物流运输 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条 ...
- BZOJ-1003 物流运输trans SPFA+DP
傻逼错误耗我1h,没给全范围坑我1A.... 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Submit: 529 ...
- [ZJOI2006]物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5999 Solved: 2473[Submit][Stat ...
- bzoj1003 [ZJOI2006]物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 6300 Solved: 2597[Submit][Stat ...
- 【BZOJ】【1003】【ZJOI2006】物流运输trans
最短路/DP 这题数据规模并不大!!这是重点……… 所以直接暴力DP就好了:f[i]表示前 i 天的最小花费,则有$f[i]=min\{f[j]+cost[j+1][i]+k\} (0\leq j \ ...
随机推荐
- [Istio]流量管理API v1alpha3路由规则
Istio提供一个API进行流量管理,该API允许用户将请求路由到特定版本的服务,为弹性测试注入延迟和失败,添加断路器等,所有这些功能都不必更改应用程序本身的代码.Istio 1.0中引入新的流量管理 ...
- [Go]接口的运用
在Go语言中,不能通过调用new函数或make函数创建初一个接口类型的值,也无法用字面量来表示一个接口类型的值.可以通过关键字type和interface声明接口类型,接口类型的类型字面量与结构体类型 ...
- POJ 2352 star level
题目链接: http://poj.org/problem?id=2352 题目大意:对于每一颗星星来说,都有一个属于自己的level,这个值为其他星星x,y坐标均不大于本星星的个数.输入时按先y由小到 ...
- 2016 Multi-University Training Contest 6 solutions BY UESTC
A Boring Question \[\sum_{0\leq k_{1},k_{2},\cdots k_{m}\leq n}\prod_{1\leq j< m}\binom{k_{j+1}}{ ...
- vagrant的学习 之 Yii2
vagrant的学习 之 Yii2 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址:https: ...
- jxls使用模版导出Excel
/** * 使用模版导出Excel */ @SuppressWarnings({ "unchecked", "deprecation" } ...
- 【Perl】perl正则表达式中的元字符、转义字符、量词及匹配方式
Linux平台上被广泛使用的正则表达式库PCRE - Perl-compatible regular expressions,从其名字即可知道,PCRE提供的是一套与Perl中相兼容的正则表达式. 元 ...
- 使用Spring Data Redis操作Redis(单机版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- pip命令自动补全功能;设置代理;使用国内源
这是pip自带的功能 执行的脚本 把脚本写入.zshrc或者profile等里面,执行source立即生效 设置代理: pip --proxy=http://username:password@pro ...
- 【APUE】信号
一.信号概念 信号都被定义为正整数,不存在编号为0的信号. 信号是异步事件的经典实例.产生信号的事件对进程而言是随机出现的,进程不能简单地测试一个变量来判别是否出现了一个信号,而是必须告诉内核在此信号 ...