BZOJ 1003 ZJOI2006 物流运输trans 动态规划+SPFA
2024-10-01 22:39:00
标题效果:给定一个无向图。输送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;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
最新文章
- 0e开头md5汇总
- php学习-快速开发框架thinkphp-day1
- [转]VPN服务器配置详解
- Zabbix探索:Agent配置中Hostname错误引起的Agent.Ping报错
- 关于MVC中使用dynamic
- 【SSH 基础】浅谈Hibernate关系映射(4)
- 教你使用vim表白
- Javascript多线程引擎(二)
- linux主机load average的概念&;&;计算过程&;&;注意事项
- FZU 1893	 内存管理 模拟
- 【PHP】基础学习
- 准备:新V8即将到来,Node.js的性能正在改变
- Java辅助类持续汇总~
- 为archlinux选择国内镜像
- OOM分析工具
- Java中char和String 的深入理解 - 字符编码
- 【ASP.NET Core】从向 Web API 提交纯文本内容谈起
- Docker的基本组成
- [AWS] User management
- Ubuntu下配置使用mysql
热门文章
- 几个移动web app开发框架
- POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集
- GO语言学习(四)GO语言语言结构
- 基于Qt Assistant制作软件帮助文档
- UVA 10943 - How do you add? 递推
- 【习题 3-1 UVA - 1585】Score
- python使用matplotlib画图
- angular的学习参考材料
- wordpress-nas
- 安装hadoop1.2.1集群环境 分类: A1_HADOOP 2014-08-29 15:49 1444人阅读 评论(0) 收藏