UVA - 1336(考虑未来费用)
来源:互联网 发布:jymusic源码 编辑:程序博客网 时间:2024/05/08 15:28
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define INF 2000000000const int maxn = 1005;int n,x,add[maxn],cost[maxn],posi[maxn];double sum[maxn],v;struct node{int x,y,z;bool operator < (const node& rhs) const{return x < rhs.x;}}a[maxn];double Sum(int i,int j){return sum[j] - sum[i-1];}double d[maxn][maxn][2];bool vis[maxn][maxn][2];double dp(int i,int j,int p){if(vis[i][j][p]) return d[i][j][p];vis[i][j][p] = true;if(i==1 && j==n) return d[i][j][p] = 0;double& ans = d[i][j][p];bool flag =false;if(i > 1) { flag=true; double t = (posi[p==0 ? i:j] - posi[i-1])*1.0/v; ans =dp(i-1,j,0)+(Sum(1,i-1)+Sum(j+1,n))*t+cost[i-1];}if(j < n) { double t = (posi[j+1] - posi[p==0 ? i:j])*1.0/v; if(flag) ans = min(ans,dp(i,j+1,1)+(Sum(1,i-1)+Sum(j+1,n))*t+cost[j+1]); else ans =dp(i,j+1,1)+(Sum(1,i-1)+Sum(j+1,n))*t+cost[j+1];}return ans;}int c;int main(){ while(scanf("%d %lf %d",&n,&v,&x)==3){ if(!n&&!v&&!x) break; for(int i=1;i<=n;i++) { scanf("%d %d %d",&a[i].x,&a[i].y,&a[i].z); } sort(a+1,a+n+1); sum[0] = 0; c=0; for(int i=1;i<=n;i++){ posi[i] = a[i].x; cost[i] = a[i].y; add[i] = a[i].z; sum[i] = sum[i-1] + add[i]; } memset(vis,false,sizeof(vis)); double res = INF; for(int i=1;i<=n;i++) { double t =(posi[i] - x)*1.0/v; if(posi[i] > x){ res = min(res,dp(i,i,0)+Sum(1,n)*t+cost[i]); break; } } for(int i=n;i>=1;i--) { double t =(x - posi[i])*1.0/v; if(posi[i] < x){ res = min(res,dp(i,i,0)+Sum(1,n)*t+cost[i]); break; } } printf("%d\n",(int)(res)); } return 0;}
0 0
- UVA - 1336(考虑未来费用)
- 未来考虑
- 写程序不要考虑未来
- UVA 1658 (费用流)
- 关于未来FS-2工作室的考虑
- 关于我自己未来的一些考虑
- 毕业5年考虑未来发展方向
- 最小费用流: uva 1658
- Uva 10090 Marbles 扩展欧几里得 费用最小
- uva 1486 - Transportation(最小费用流)
- UVA 10806 Dijkstra, Dijkstra.(费用流)
- uva 10806 - Dijkstra, Dijkstra.(费用流)
- uva 10594 - Data Flow(费用流)
- UVA 10594 - Data Flow(费用流)
- UVA 10806 - Dijkstra, Dijkstra.(费用流)
- UVA 11613 不确定流量费用流
- UVa 10806 Dijkstra, Dijkstra. 费用流
- UVA 10594 Data Flow (最小费用流)
- STL入门教程
- flex于java实现增删改查
- 探秘static——类不需实例化就能用?
- uva 1151 Buy or Build
- python 学习笔记(六)
- UVA - 1336(考虑未来费用)
- NC-Verilog Simulator
- linux
- 将博客搬至CSDN
- asp.net-页面跳转的方法及实例
- Servlet 3.0之装配来自web.xml,web-fragment.xml和注解的描述符
- 5.Android内核 Context
- MySQL数据库优化
- 第9周项目 6.6 学学c