标题效果:给定一个无向图。输送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;
}

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

最新文章

  1. 0e开头md5汇总
  2. php学习-快速开发框架thinkphp-day1
  3. [转]VPN服务器配置详解
  4. Zabbix探索:Agent配置中Hostname错误引起的Agent.Ping报错
  5. 关于MVC中使用dynamic
  6. 【SSH 基础】浅谈Hibernate关系映射(4)
  7. 教你使用vim表白
  8. Javascript多线程引擎(二)
  9. linux主机load average的概念&amp;&amp;计算过程&amp;&amp;注意事项
  10. FZU 1893 内存管理 模拟
  11. 【PHP】基础学习
  12. 准备:新V8即将到来,Node.js的性能正在改变
  13. Java辅助类持续汇总~
  14. 为archlinux选择国内镜像
  15. OOM分析工具
  16. Java中char和String 的深入理解 - 字符编码
  17. 【ASP.NET Core】从向 Web API 提交纯文本内容谈起
  18. Docker的基本组成
  19. [AWS] User management
  20. Ubuntu下配置使用mysql

热门文章

  1. 几个移动web app开发框架
  2. POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集
  3. GO语言学习(四)GO语言语言结构
  4. 基于Qt Assistant制作软件帮助文档
  5. UVA 10943 - How do you add? 递推
  6. 【习题 3-1 UVA - 1585】Score
  7. python使用matplotlib画图
  8. angular的学习参考材料
  9. wordpress-nas
  10. 安装hadoop1.2.1集群环境 分类: A1_HADOOP 2014-08-29 15:49 1444人阅读 评论(0) 收藏