这道题被马老板毒瘤了一下,TLE到怀疑人生

//然而BZOJ上妥妥地过了(5500ms+ -> 400ms+)

要么SPFA太玄学要么是初始化block被卡到O(n^4)

不管了,不改了

另外DP方程值得学习

#include<bits/stdc++.h>
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
const int maxn = 4e4+11;
typedef long long ll;
const int oo = 0x3f3f3f3f;
vector<int> vec[333];//block
int to[maxn<<1],nxt[maxn<<1],cost[maxn<<1],head[maxn],tot;
void init(){
memset(head,-1,sizeof head);
tot=0;
}
void add(int u,int v,int w){
to[tot]=v;nxt[tot]=head[u];cost[tot]=w;
head[u]=tot++;
swap(u,v);
to[tot]=v;nxt[tot]=head[u];cost[tot]=w;
head[u]=tot++;
}
int dis[maxn];
bool vis[maxn];
bool xx[666];
int n,m,k,e;
int spfa(int day1,int day2){
if(day1>day2)swap(day1,day2);
memset(dis,oo,sizeof dis);
memset(vis,0,sizeof vis);
memset(xx,0,sizeof xx);
for(int day=day1;day<=day2;day++){
for(int t = 0; t < vec[day].size(); t++){
xx[vec[day][t]]=1;
}
}
stack<int> que;
que.push(1);vis[1]=1;dis[1]=0;
while(!que.empty()){
int u=que.top(); que.pop();vis[u]=0;
for(int i=head[u]; ~i; i=nxt[i]){
int v=to[i],w=cost[i];
if(!xx[v]&&dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
if(!vis[v]){
vis[v]=1;
que.push(v);
}
}
}
}
return dis[m];
}
ll dp[333];
ll rec[333][333];
int main(){
scanf("%d%d%d%d",&n,&m,&k,&e);
init();
for(int i = 0; i < 333; i++) vec[i].clear();
int u,v,w,t,a,b,c;
rep(i,1,e){
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
}
scanf("%d",&t);
rep(i,1,t){
scanf("%d%d%d",&c,&a,&b);
rep(j,a,b) vec[j].push_back(c);
}
rep(i,1,n) rep(j,1,n) rec[i][j]=1ll<<60;
rep(i,1,n) rep(j,i,n) rec[i][j]=spfa(i,j);
rep(i,1,n) dp[i]=rec[1][i]*i;
dp[0]=0;
rep(i,1,n){
rep(j,0,i-1){
dp[i]=min(dp[i],dp[j]+rec[j+1][i]*(i-j)+k);
}
}
printf("%lld\n",dp[n]); return 0;
}

BZOJ - 1003 DP+最短路的更多相关文章

  1. BZOJ 1003 物流运输 题解 【SPFA+DP】

    BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...

  2. ACM-ICPC 2018 南京赛区网络预赛 L && BZOJ 2763 分层最短路

    https://nanti.jisuanke.com/t/31001 题意 可以把k条边的权值变为0,求s到t的最短路 解析  分层最短路  我们建立k+1层图 层与层之间边权为0,i 向 i+1层转 ...

  3. bzoj 3622 DP + 容斥

    LINK 题意:给出n,k,有a,b两种值,a和b间互相配对,求$a>b$的配对组数-b>a的配对组数恰好等于k的情况有多少种. 思路:粗看会想这是道容斥组合题,但关键在于如何得到每个a[ ...

  4. 旅游(CSUST省赛选拔赛2+状压dp+最短路)

    题目链接:http://csustacm.com:4803/problem/1016 题目: 思路:状压dp+最短路,比赛的时候有想到状压dp,但是最短路部分写挫了,然后就卡死了,对不起出题人~dis ...

  5. BZOJ 1003: [ZJOI2006]物流运输trans(最短路+dp)

    1A,爽! cost[i][j]表示从第i天到第j天不改路线所需的最小花费,这个可以用最短路预处理出.然后dp(i)=cost[j][i]+dp(j-1)+c. c为该路线的花费. --------- ...

  6. BZOJ 1003 - 物流运输 - [最短路+dp]

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 Time Limit: 10 Sec Memory Limit: 162 MB D ...

  7. BZOJ.1003.[ZJOI2006]物流运输(DP 最短路Dijkstra)

    题目链接 容易看出是个最短路+DP.既然答案和天数有关,那么就令\(f[i]\)表示前\(i\)天最小成本. 这个转移很好想: \(f[i]=\min(f[i],\ f[j]+cost(j+1,i)+ ...

  8. bzoj 1003 最短路+dp

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8249  Solved: 3464[Submit][Stat ...

  9. BZoj 1003 物流运输 DP+最短路

    2013-09-11 09:56 W[I]代表前I天能取得的最小花费,假设在第J天更改一次路线,那么如果有 W[I]>W[J]+第j+1到第I天的最小花费+更改路线的花费(K) 那么更新W[I] ...

随机推荐

  1. 645. Set Mismatch挑出不匹配的元素和应该真正存在的元素

    [抄题]: he set S originally contains numbers from 1 to n. But unfortunately, due to the data error, on ...

  2. 关于sleep的理解

    unix是按时间片轮转调度, windows是抢占式调度 以吃蛋糕为例子,10个人吃蛋糕,如果是unix下, 假设开始时,每个人都处于就绪状态,那么操作系统调度大家排好队,按顺序吃,每个人吃1分钟, ...

  3. 23.NULL 函数

    SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductName UnitPrice ...

  4. sed 之 & 符号

    sed 之 & 符号 摘自:https://blog.csdn.net/jasonliujintao/article/details/53509620 & 这个符号,其实很有用,在对相 ...

  5. DELPHI XE5 UP2 无真机输出 APP并转换为IPA(实践整理)

    1.在Mac上配置开发环境(具体步骤请百度)   XCODE5.1+IOS7.1SDK+COMMAND LINE TOOLS   安装PlatformAssistant   买一个真机调试账号(实际测 ...

  6. delphi 金额大小写转换函数

    {*------------------------------------------------ 金额大小写转换函数 @author 王云盼 @version V1506.01 在delphi7测 ...

  7. Xcode更新至IOS 9 后错误处理

    1.obtain an updated library from the vendor, or disable bitcode for this target. for architecture ar ...

  8. 正确处理类的复合关系------新标准c++程序设计

    假设要编写一个小区养狗管理程序,该程序需要一个“主人”类,还需要一个“狗”类.狗是有主人的,主人也有狗.假定狗只有一个主人,但一个主人可以有最多10条狗.该如何处理“主人”类和“狗”类的关系呢?下面是 ...

  9. Mybatis 延迟加载策略

    延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. 好处: 先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速 ...

  10. kali linux之搜索引擎Shodan

    搜索引擎: 公司新闻动态,重要雇员信息 机密文档/网络拓扑 用户名密码 目标系统软硬件技术架构 Shodan:搜索联网的设备(iot)https://www.shodan.io/ banner:htt ...