【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 \ ...
随机推荐
- JS替换回车换行符
replace(/\r/ig, '<br>').replace(/\n/ig, '<br>')
- CentOS7中,vnc分辨率设置。
使用geometry参数进行调整 例如,我们需要将分辨率调整到800x600 [root@secdb ~]# vncserver -geometry 800x600 New 'secdb:5 (roo ...
- 谢孟军:The State of Go | ECUG Con 精粹系列
本月 17 日,Go 1.8 版本火热发布.相较于以往的版本,Go 1.8 具体有哪些新的特性呢?想必这是不少 Gopher 们热切关注和讨论的问题.作为著名的Golang 布道者,Gopher Ch ...
- Codeforces Round #277 (Div. 2 Only)
A:SwapSort http://codeforces.com/problemset/problem/489/A 题目大意:将一个序列排序,可以交换任意两个数字,但要求交换的次数不超过n,输出任意一 ...
- 推荐一个 Java 实体映射工具 MapStruct
声明: 1.DO(业务实体对象),DTO(数据传输对象). 2.我的代码中用到了 Lombok ,不了解的可以自行了解一下,了解的忽略这条就好. 在一个成熟的工程中,尤其是现在的分布式系统中,应用与应 ...
- No route info of this topic
使用rocketmq时报错 com.alibaba.rocketmq.client.exception.MQClientException: No route info of this topic, ...
- ES6__函数的扩展
/** * 函数的扩展 * 1 为函数参数指定默认值 * 2 函数的 rest 参数 * 3 箭头函数 */ // ------------------------------------------ ...
- Spring基于Java的配置
以下内容引用自http://wiki.jikexueyuan.com/project/spring/java-based-configuration.html: 基于Java的配置选项,可以使你在不用 ...
- css实现文字渐变
css文件渐变虽然兼容性比较差,但是用在移动端和chrome中还是没有问题的. 实现文件渐变的方法有两种 1. 使用 background 的属性 2. 使用 mask 属性 方式一. <!DO ...
- canvas仿芝麻信用分仪表盘
这是一个仿支付宝芝麻信用分的一个canvas,其实就是一个动画仪表盘. 首先, 上原图: 这个是在下支付宝上的截图,分低各位见笑了.然后看下我用canvas实现的效果图: <canvas id= ...