BZOJ 斜率优化 1096: [ZJOI2007]仓库建设
2014-08-28 10:29
204 查看
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1096
代码:
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <string.h> #include <queue> #include <vector> #include <algorithm> #include <cassert> #include <set> #include <map> #include <cmath> using namespace std; #define rep(i,a,b) for(int i=(a);i<(b);++i) #define rrep(i,a,b) for(int i=(a);i>=(b);--i) #define clr(a,x) memset(a,(x),sizeof(a)); #define eps 1e-8 #define LL long long #define mp make_pair const int maxn=1000000+5; const LL inf=1e15; LL S1[maxn],S2[maxn],dp[maxn][2]; LL X[maxn],P[maxn],C[maxn]; int q[maxn],front,rear; double up(int j,int k) { return dp[j][1]-X[j]*S1[j]+S2[j]-(dp[k][1]-X[k]*S1[k]+S2[k]); } double down(int j,int k) { return X[k]-X[j]; } struct Gong { LL X,P,C; bool operator<(const Gong&g) const { return X>g.X; } }in[maxn]; int main() { int n; while(scanf("%d",&n)==1) { rep(i,1,n+1) scanf("%lld%lld%lld",&in[i].X,&in[i].P,&in[i].C); sort(in+1,in+1+n); rep(i,1,n+1) X[i]=in[i].X,P[i]=in[i].P,C[i]=in[i].C; rep(i,1,n+1) S1[i]=S1[i-1]+P[i]; rep(i,1,n+1) S2[i]=S2[i-1]+X[i]*P[i]; // Dp(n); front=rear=0; q[rear++]=1; dp[1][1]=C[1]; dp[1][0]=inf; rep(i,2,n+1) { while(rear-front>1) { int a=q[front],b=q[front+1]; if(up(a,b)/down(a,b)<=S1[i]) ++front; else break; } int j=q[front]; dp[i][0]=dp[j][1]-S2[i]+S2[j]+X[j]*(S1[i]-S1[j]); dp[i][1]=min(dp[i-1][0],dp[i-1][1])+C[i]; while(rear-front>1) { int a=q[rear-2],b=q[rear-1],c=i; if(up(a,b)/down(a,b)>=up(b,c)/down(b,c)) --rear; else break; } q[rear++]=i; } printf("%lld\n",min(dp [0],dp [1])); } }
相关文章推荐
- [BZOJ1096][ZJOI2007][DP][斜率优化]仓库建设
- 【BZOJ 1096】【ZJOI 2007】仓库建设 DP+斜率优化
- BZOJ1096(ZJOI2007)仓库建设--斜率优化DP
- bzoj1096[ZJOI2007]仓库建设 斜率优化dp
- 【BZOJ 1096】 [ZJOI2007]仓库建设 (斜率优化)
- BZOJ 1096 [ZJOI2007]仓库建设 斜率优化dp
- 【BZOJ1096】【ZJOI2007】仓库建设(斜率优化,动态规划)
- BZOJ 1096 [ZJOI2007]仓库建设 动态规划+斜率优化
- [BZOJ1096][ZJOI2007]仓库建设(斜率优化dp)
- BZOJ 1096 ZJOI2007 仓库建设 斜率优化
- [BZOJ1096][ZJOI2007]仓库建设 斜率优化
- 【斜率优化DP】BZOJ1096 [ZJOI2007]仓库建设
- BZOJ 1096: [ZJOI2007]仓库建设( dp + 斜率优化 )
- 【BZOJ】1096: [ZJOI2007]仓库建设(dp+斜率优化)
- 【bzoj1096】【ZJOI2007】【仓库建设】【斜率优化dp】
- [BZOJ 1096][ZJOI2007]仓库建设:DP斜率优化
- 【BZOJ1096】[ZJOI2007]仓库建设【斜率优化】
- BZOJ.1096.[ZJOI2007]仓库建设(DP 斜率优化)
- 【ZJOI2007】【BZOJ1096】仓库建设(斜率优化DP)
- [BZOJ1096][ZJOI2007]仓库建设(斜率优化dp)