BZOJ - 1003 DP+最短路
这道题被马老板毒瘤了一下,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+最短路的更多相关文章
- BZOJ 1003 物流运输 题解 【SPFA+DP】
BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...
- ACM-ICPC 2018 南京赛区网络预赛 L && BZOJ 2763 分层最短路
https://nanti.jisuanke.com/t/31001 题意 可以把k条边的权值变为0,求s到t的最短路 解析 分层最短路 我们建立k+1层图 层与层之间边权为0,i 向 i+1层转 ...
- bzoj 3622 DP + 容斥
LINK 题意:给出n,k,有a,b两种值,a和b间互相配对,求$a>b$的配对组数-b>a的配对组数恰好等于k的情况有多少种. 思路:粗看会想这是道容斥组合题,但关键在于如何得到每个a[ ...
- 旅游(CSUST省赛选拔赛2+状压dp+最短路)
题目链接:http://csustacm.com:4803/problem/1016 题目: 思路:状压dp+最短路,比赛的时候有想到状压dp,但是最短路部分写挫了,然后就卡死了,对不起出题人~dis ...
- BZOJ 1003: [ZJOI2006]物流运输trans(最短路+dp)
1A,爽! cost[i][j]表示从第i天到第j天不改路线所需的最小花费,这个可以用最短路预处理出.然后dp(i)=cost[j][i]+dp(j-1)+c. c为该路线的花费. --------- ...
- BZOJ 1003 - 物流运输 - [最短路+dp]
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 Time Limit: 10 Sec Memory Limit: 162 MB D ...
- BZOJ.1003.[ZJOI2006]物流运输(DP 最短路Dijkstra)
题目链接 容易看出是个最短路+DP.既然答案和天数有关,那么就令\(f[i]\)表示前\(i\)天最小成本. 这个转移很好想: \(f[i]=\min(f[i],\ f[j]+cost(j+1,i)+ ...
- bzoj 1003 最短路+dp
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8249 Solved: 3464[Submit][Stat ...
- BZoj 1003 物流运输 DP+最短路
2013-09-11 09:56 W[I]代表前I天能取得的最小花费,假设在第J天更改一次路线,那么如果有 W[I]>W[J]+第j+1到第I天的最小花费+更改路线的花费(K) 那么更新W[I] ...
随机推荐
- 运单waybill快速录入
运单waybill快速录入 前台页面: 1修改页面onAfterEdit事件, 后台代码:ajax响应回请求1 为成功,0 为失败
- [GO]给导入包起别名
package main import io "fmt" //引用fmt这个包时,名字重命名为io import _ "os" //引用os这个包,但是不调用, ...
- 无限级分类及生成json数据
第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...
- AutoLayout自动布局,NSLayoutConstraint 视图约束使用
一.方法 NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:<#(id)#> attribut ...
- HttpUploader2 -chrome 45+安装教程
HttpUploader2-Chrome 45+安装说明 步骤如下: a.先安装HttpUploader2.exe,HttpUploader2.exe为插件集成安装包. b.再安装HttpUpload ...
- Densely Connected Convolutional Networks(緊密相連卷積網絡)
- Dense blocks where each layer is connected to every other layer in feedforward fashion(緊密塊是指每一個層與每 ...
- Floyd-Warshall求图中任意两点的最短路径
原创 除了DFS和BFS求图中最短路径的方法,算法Floyd-Warshall也可以求图中任意两点的最短路径. 从图中任取两点A.B,A到B的最短路径无非只有两种情况: 1:A直接到B这条路径即是最短 ...
- C# PDF、winform 生成解析二维码
PDF 生成.解析二维码 界面样式: 第一步:下载ThoughtWorks.QRCode.dll 类并引用 地址 http://download.csdn.net/detail/liwb1987/8 ...
- 关于CS0016: Could not write to output file ‘c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary AS
1.添加用户"Network Service” 和 “IIS_IUSERS” 读下面目录的读写权限 a) C:\Windows\Temp b) C:\Windows\Microsoft.NE ...
- B - N皇后问题
原文链接 一天课下,张老板研究起了国际象棋,渴望完美的他更改了棋盘的大小,在N*N的方格棋盘放置了N个皇后,希望它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的 ...