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;
}

最新文章

  1. .NET Core下的日志(1):记录日志信息
  2. python selenium中使用ddt进行数据驱动测试
  3. android典型监听事件实
  4. storm源码之巧用java反射反序列化clojure的defrecord获取属性值
  5. 每天一个linux命令(37)--iostat命令
  6. html之改变图片透明度而不改变文字的透明度--两种方法实现
  7. Android 为TV端助力
  8. WebPack命令执行的时候,其内部处理逻辑是什么
  9. build to win读后感
  10. easy ui Uncaught Error: cannot call methods on tooltip prior to initialization; attempted to call method &#39;hide&#39;
  11. CentOS7中替换安装python3.7.0
  12. canconfig 配置命令
  13. PHP漏洞-Session劫持
  14. php学习二:表达式
  15. PhoneGap 获得APP的VersionName
  16. ASP.NET读取RSS
  17. UltraISO制作启动盘及提取U盘为ISO镜像
  18. /sys/kernel/debug/gpio
  19. ExtJs工具篇(2)&mdash;&mdash;Aptana Studio 3 汉化
  20. net-snmp配置文件snmp.conf

热门文章

  1. 809. Expressive Words
  2. Linux命令之---ls
  3. Androd安全——反编译技术完全解析
  4. 非常好用的CSS样式重置表
  5. session为什么需要持久化
  6. js数据类型的检测总结,附面试题--封装一个函数,输入任意,输出他的类型
  7. 极简Node教程-七天从小白变大神(二:中间件是核心)
  8. android&#160;内存说明
  9. POJ 3321:Apple Tree(dfs序+树状数组)
  10. MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。