标题效果:给定一个无向图。输送n日,有一天的某一时刻不能去,更换行考虑k,求总成本

一阶cost[i][j]用于第一i为了天j天正在同一航线的最低消费 这种利用SPFA处理

然后就是移动的法规问题 订购f[i]至1~i最低消费天

然后,f[i]=min{ f[j]+cost[j+1][i]+k } ( 0<=j<i )

注意m和n别写反

乘天数之前要特判是不是正无穷

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct abcd{
int to,f,next;
}table[10000];
int head[30],tot;
int n,m,_k,e,d,cost[110][110];
bool ban[30][110],unusable[30];
int q[65540],f[110],v[30];
unsigned r,h;
void SPFA()
{
int i;
memset(f,0x3f,sizeof f);
q[++r]=1;f[1]=0;
while(r!=h)
{
int x=q[++h];
v[x]=0;
for(i=head[x];i;i=table[i].next)
if(!unusable[table[i].to])
if(f[x]+table[i].f<f[table[i].to])
{
f[table[i].to]=f[x]+table[i].f;
if(!v[table[i].to])
v[table[i].to]=1,q[++r]=table[i].to;
}
}
}
void Add(int x,int y,int z)
{
table[++tot].to=y;
table[tot].f=z;
table[tot].next=head[x];
head[x]=tot;
}
int main()
{
int i,j,k,x,y,z;
cin>>n>>m>>_k>>e;
for(i=1;i<=e;i++)
{
scanf("%d%d%d",&x,&y,&z);
Add(x,y,z);
Add(y,x,z);
}
cin>>d;
for(i=1;i<=d;i++)
{
scanf("%d%d%d",&z,&x,&y);
for(j=x;j<=y;j++)
ban[z][j]=1;
}
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
{
memset(unusable,0,sizeof unusable);
for(x=2;x<m;x++)
for(k=i;k<=j;k++)
if(ban[x][k])
{
unusable[x]=1;
break;
}
SPFA();
cost[i][j]=f[m]*(f[m]>=0x3f3f3f3f? 1:j-i+1);
}
memset(f,0x3f,sizeof f);
f[0]=0;
for(i=1;i<=n;i++)
for(j=0;j<i;j++)
f[i]=min(f[i],f[j]+cost[j+1][i]+_k);
cout<<f[n]-_k<<endl;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

BZOJ 1003 ZJOI2006 物流运输trans 动态规划+SPFA的更多相关文章

  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. BZOJ 1003 [ZJOI2006]物流运输trans SPFA+DP

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

  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. BZOJ 1003[ZJOI2006]物流运输(SPFA+DP)

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

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

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

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

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

随机推荐

  1. cocos2d-x中六种持续性动作

    持续性动作: (一) 位置变化动作 Move by to Jump by to (二) 属性变化动作 Scale by to Rotate by to Fade in out to Tint to b ...

  2. iOS开发之CocoaPods(objective-c第三方库管理工具)

    介绍: iOS开发中,大多数情况下,我们都须要集成一些第三方依赖库.对于一个稍大的项目,用到的第三方依赖库的数量也很可观.CocoaPods是objective-c第三方库管理工具,方便第三方库的管理 ...

  3. JS学习笔记 - fgm练习 - 网页换肤

    总结: 1. 点击按钮,div内部变色,边框保持颜色不变. 实现原理:其实本来就把background 和 border 分别设置了同一个颜色,看似是一个整体,其实本来就是分开的. 那么点击的时候,只 ...

  4. (转)iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链

    转自:http://lesca.me/archives/iptables-examples.html 本文介绍25个常用的iptables用法.如果你对iptables还不甚了解,可以参考上一篇ipt ...

  5. PythonNET网络编程1

    # PythonNET 网络编程 ISO(国际标准化组织) 制定了 OSI(Open System Interconnectio),意为开放式系统互联.国际标准化组织(ISO)制定了OSI模型,该模型 ...

  6. change_names

    DC在储存网表时,有时会采用特殊的字符 比如表示总线BUS[7]-BUS[0] 会表示成\BUS[7]    \BUS[6]...... 在compile命令之后,write命令之前  加上:chan ...

  7. Linux定时器的使用(三种方法)

    使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务.要达到这一目的,一般有两个常见的比较有效的方法.一个是用linux内部的三个定时器,另一个是用sleep, us ...

  8. stm32的dma缓冲区长度,,存放数据数组会不会冲掉

  9. Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏

    更多内容请参考官方文档:http://maven.apache.org/guides/index.html 官方文档很详细,基本上可以查找到一切相关的内容. 另外,快速入门可参考视频:孔浩的maven ...

  10. 1、第一课 register_chrdev和register_chrdev_region 创建知识

    1. register_chrdev注册字符设备后,有0-256个子设备可用,若major==0,则内核动态申请主设备号.static inline int register_chrdev(unsig ...