1003: [ZJOI2006]物流运输

题目:传送门

题解:

   可以用spfa处理出第i天到第j都走这条路的花费,记录为cost

   f[i]表示前i天的最小花费:f[i]=min(f[i],f[j-1]+cost*(i-j+1)+k);

水一发代码:

 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#define qread(x) x=read()
using namespace std;
inline int read()
{
int f=,x=;char ch;
while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>='' && ch<=''){x=x*+ch-'';ch=getchar();}
return f*x;
}
int n,m,k,e,D;
struct edge
{
int x,y,d,next;
}a[];int len,last[];
void ins(int x,int y,int d)
{
len++;a[len].x=x;a[len].y=y;a[len].d=d;
a[len].next=last[x];last[x]=len;
}
int flag[][],f[],d[],list[];
int spfa(int st,int ed)
{
for(int i=;i<=m;i++)d[i]=;
int head=,tail=;list[]=;d[]=;
while(head!=tail)
{
int x=list[head];
for(int k=last[x];k;k=a[k].next)
{
int y=a[k].y;
if((flag[y][ed]-flag[y][st-]==) && (d[y]>d[x]+a[k].d))
{
d[y]=d[x]+a[k].d;
list[tail++]=y;
if(tail==m+)tail=;
}
}
head++;if(head==m+)head=;
}
return d[m];
}
int main()
{
qread(n);qread(m);qread(k);qread(e);
len=;memset(last,,sizeof(last));
for(int i=;i<=e;i++)
{
int x,y,d;
qread(x);qread(y);qread(d);
ins(x,y,d);ins(y,x,d);
}
scanf("%d",&D);
memset(flag,,sizeof(flag));
for(int i=;i<=D;i++)
{
int p,x,y;
qread(p);qread(x);qread(y);
for(int j=x;j<=y;j++)flag[p][j]=;
}
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
flag[i][j]+=flag[i][j-];
f[]=;
for(int i=;i<=n;i++)
{
f[i]=;
for(int j=;j<=i;j++)
{
int cost=spfa(j,i);
f[i]=min(f[i],f[j-]+cost*(i-j+)+k);
}
}
printf("%d\n",f[n]-k);
return ;
}

最新文章

  1. HTML5学习
  2. Centos 6.5 X64 环境下编译 hadoop 2.6.0 --已验证
  3. jave ee之 servlet 记录
  4. WINDOWS登录系统之前(欢迎界面)运行指定程序脚本服务
  5. 【转载】Linux常用命令列表
  6. python中获取当前日期在当月是第几天
  7. Spring 定时执行任务重复执行多次
  8. LA 3027 Corporative Network
  9. delphi-json组件,速度非常快,要比superobject快好几倍
  10. float 覆盖元素的问题
  11. Cormen — The Best Friend Of a Man
  12. BAYESIAN STATISTICS AND CLINICAL TRIAL CONCLUSIONS: WHY THE OPTIMSE STUDY SHOULD BE CONSIDERED POSITIVE(转)
  13. Azure SQL Database (25) Azure SQL Database创建只读用户
  14. [知了堂学习笔记]_eclipse引入svn插件,并将项目同步到svn
  15. SkylineGlobe7.0.1版本 主页面如何和Popup里面的嵌入页面相互传值
  16. handsontable-chosen-editor
  17. 洛谷P4562 [JXOI2018]游戏(组合数学)
  18. VSCode + PYQT5 + QtDesigner 环境搭建和测试
  19. Django组件(五) Django之ContentType组件
  20. JSP基本用法(一)运行机制和语法

热门文章

  1. JavaScript push(),join() 函数
  2. 为什么要重写toString()方法
  3. 洛谷 P3576 [POI2014]MRO-Ant colony
  4. Android Java 程序员必备开发工具
  5. [jzoj 5343] [NOIP2017模拟9.3A组] 健美猫 解题报告 (差分)
  6. sicily 1342 开心的金明 (动规)
  7. Codeforces 676E The Last Fight Between Human and AI 规律
  8. NVMe到底是什么?
  9. HD-ACM算法专攻系列(13)——How Many Fibs?
  10. GetExecutingAssembly() 和 GetCallingAssembly() 的区别