AC日记——[ZJOI2006]物流运输 bzoj 1003
思路:
最短路+dp;
节点在a-b天里不能使用
那么我们准备每一组a-b求一条最短路,如果没有,则用极大值表示;
cost[a,b]记录这个最短路;
然后,开始dp;
dp[i]=min(dp[i],dp[j]+cost[j+1][i]*(i-j)+k);
dp[i]表示前i天最小费用;
最后输出dp[n]-k;
来,上代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; #define ll long long ll n,m,k,e,map[][],cost[][],que[**],dp[]; bool if_[][]; inline void in(ll &now)
{
register char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
} ll spfa(ll u,ll v)
{
ll dis[],can[],init[],h=,tail=;
for(ll i=;i<=m;i++) can[i]=true,dis[i]=0x7ffffff,init[i]=false;
for(ll i=u;i<=v;i++)
{
for(ll j=;j<=m;j++) if(if_[i][j]) can[j]=false;
}
que[]=,dis[]=,init[]=true;
while(h<tail)
{
ll now=que[h++];init[now]=false;
for(ll i=;i<=m;i++)
{
if(can[i]&&dis[i]>dis[now]+map[now][i])
{
dis[i]=dis[now]+map[now][i];
if(!init[i])
{
init[i]=true;
que[tail++]=i;
}
}
}
}
return dis[m];
} int main()
{
in(n),in(m),in(k),in(e);ll u,v,w;
memset(dp,/,sizeof(dp));
memset(map,/,sizeof(map));
while(e--)
{
in(u),in(v),in(w);
map[u][v]=map[v][u]=min(w,map[v][u]);
}
in(e);
while(e--)
{
in(w),in(u),in(v);
for(ll i=u;i<=v;i++) if_[i][w]=true;
}
for(ll i=;i<=n;i++)
{
for(ll j=i;j<=n;j++)
{
cost[i][j]=spfa(i,j);
}
}
dp[]=;
for(ll i=;i<=n;i++)
{
for(ll j=;j<i;j++)
{
dp[i]=min(dp[i],dp[j]+cost[j+][i]*(i-j)+k);
}
}
cout<<dp[n]-k;
}
AC日记——[ZJOI2006]物流运输 bzoj 1003的更多相关文章
- BZOJP1003 [ZJOI2006]物流运输trans
BZOJP1003 [ZJOI2006]物流运输trans 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Sub ...
- BZOJ 1003 [ZJOI2006]物流运输trans
1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4242 Solved: 1765[Submit] ...
- BZOJ 1003: [ZJOI2006]物流运输trans(最短路+dp)
1A,爽! cost[i][j]表示从第i天到第j天不改路线所需的最小花费,这个可以用最短路预处理出.然后dp(i)=cost[j][i]+dp(j-1)+c. c为该路线的花费. --------- ...
- BZOJ(1) 1003 [ZJOI2006]物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 9404 Solved: 4087[Submit][Stat ...
- BZOJ 1003[ZJOI2006]物流运输(SPFA+DP)
Problem 1003. -- [ZJOI2006]物流运输 1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: ...
- bzoj 1003 [ZJOI2006]物流运输(最短路+dp)
[ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8973 Solved: 3839[Submit][Status][Di ...
- [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 ...
- 【bzoj1003】[ZJOI2006]物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 6331 Solved: 2610[Submit][Stat ...
随机推荐
- 内存管理小结(2)--伙伴系统API
伙伴系统分配内存以2的整数幂次的页数为单位.提供的API主要分为分配类与释放类. 1.分配类 1.1unsigned long __get_free_pages(gfp_t gfp_mask, uns ...
- 使用virtualbox安装的Ubuntu,窗口分辨率过小,使用增强工具完成和vmtools一样的功能。
今天用VirtualBox成功装上Ubuntu10.04之后发现了一个问题:默认情况下 ubuntu 的分辨率最高只能设到800*600.但是对于自己的大显示器,在分辨率800*600的ubuntu窗 ...
- Jack Straws POJ - 1127 (简单几何计算 + 并查集)
In the game of Jack Straws, a number of plastic or wooden "straws" are dumped on the table ...
- 记一次开发过程中,iview遇到的一些坑以及解决办法
写在开头:本次项目采用的是vue2.0+iview3.0,最近公司没啥事,来总结一下开发过程中遇到的问题. 1.Modal关闭问题 需求背景:modal框里面是个form表单,点击确定之后,先验证fo ...
- TCP报文格式,TCP的三次握手和四次挥手&hosts文件
1.TCP报文格式 TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接 序号(4字节=32位): 37 59 56 75 用来标识TCP发端向TCP收端发送的数据 ...
- netcfg.exe
netcfg.exe 编辑 本词条缺少信息栏.名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 目录 1 简介 2 可能出现问题 简介编辑 netcfg.exe是Kaspersky的 ...
- MySQL5.7(三)数据表操作
概念在数据库中,数据表是数据库中最重要.最基本的操作对象,是数据存储的基本单位.数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的.每一行代表一条唯一的记录,每一列代表记录中的一个域.1.创 ...
- ios动画效果集锦(持续更新)
1.树叶滚动进度:http://www.jianshu.com/p/800496caa055 2.列表滚动动画和滚动视差效果http://www.jianshu.com/p/42e1eb59a1af ...
- 【bzoj3687】简单题 背包dp+STL-bitset
题目描述 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的异或和.目前为止,小呆已经解决了前三个问题 ...
- 【bzoj2242】[SDOI2011]计算器 EXgcd+BSGS
题目描述 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给定y,z,p, ...