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的更多相关文章

  1. BZOJP1003 [ZJOI2006]物流运输trans

    BZOJP1003 [ZJOI2006]物流运输trans 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MB Sub ...

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

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

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

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

  4. BZOJ(1) 1003 [ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 9404  Solved: 4087[Submit][Stat ...

  5. BZOJ 1003[ZJOI2006]物流运输(SPFA+DP)

    Problem 1003. -- [ZJOI2006]物流运输 1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: ...

  6. bzoj 1003 [ZJOI2006]物流运输(最短路+dp)

    [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8973  Solved: 3839[Submit][Status][Di ...

  7. [ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5999  Solved: 2473[Submit][Stat ...

  8. bzoj1003 [ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 6300  Solved: 2597[Submit][Stat ...

  9. 【bzoj1003】[ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 6331  Solved: 2610[Submit][Stat ...

随机推荐

  1. du 与df 统计系统磁盘不一致原因与解决方法

    事件起因: 同事发现云主机磁盘系统盘满了,准备清理系统盘,便利用du 命令统计了根目录下各文件夹的大小,发现统计的各文件夹的大小总和 加起来比 df 命令查看到的系统盘所使用空间 要小很多.这里记录下 ...

  2. dijkstra与他的优化!!!

    目录 SPFA已死,有事烧纸 Dijkstra 配对堆 引言 讲解 合并 修改 弹出堆顶pop 代码 结合! 1 2 @ SPFA已死,有事烧纸 其实我本人也是一个SPFA的忠诚用户,至少我的最少费用 ...

  3. 【luminate primordial】苏州之行

    测试了reader 07版 更主要的是第一次坐了高铁 还不错 路上看到下雨的时候都是水顺着玻璃平着流 好厉害的样子 6个人去的6个人回 今儿开会 老板不太满意 小随意 对我来说,收获感觉还是不小的,使 ...

  4. 记忆化搜索:POJ1579-Function Run Fun(最基础的记忆化搜索)

    Function Run Fun Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14815 Accepted: 7659 Des ...

  5. (ADO.NET小知识点汇总)看到什么记什么

    1.数据库连接池:在同时连接数不多的情况下, 打开一个链接往数据库导1W条数据的耗时 跟 导一条数据就打开跟关闭数据库连接的耗时 两者其实相差不大,这是为什么呢?打开关闭的本身不是有很多耗时吗?这是因 ...

  6. 69、Android 布局中轻松实现图片的全屏、居中、平铺

    public void paint() { if (item.laying_mode != 1)//平铺或者充满 { new AsyncTask<Void, Void, Void>() { ...

  7. Halcon18 Mac os 下载

    Halcon18 Mac os 下载地址:http://www.211xun.com/download_page_15.html HALCON 18 是一套机器视觉图像处理库,由一千多个算子以及底层的 ...

  8. algorithm 头文件

    非修改性序列操作(12个) 循环 对序列中的每个元素执行某操作 for_each() 查找 在序列中找出某个值的第一次出现的位置 find() 在序列中找出符合某谓词的第一个元素 find_if() ...

  9. TypeError: $.ajaxFileUpload(…) is not a function

    今天做一个图片上传功能,用到了ajaxFileUpload,控制台报错TypeError: $.ajaxFileUpload(…) is not a function,都说是jQuery版本问题,也试 ...

  10. [Linux]方便openmp等程序的类似编译

    因为总是打参数例如-fopenmp或者-lGL等等有些麻烦,所以特地写一个可以使用的bash文件用来执行简单的操作 首先在.profile中添加 if [ -d "$HOME/bin&quo ...