栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3381 Confectionery

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3381 Confectionery

#include <cstdio>#include <cstring>#include <cmath>#include <queue>#include <algorithm>using namespace std;const double eps=1e-9;struct crack{ double x,d;};bool operator <(const crack &a,const crack &b){ return a.x<b.x;}crack ck[11];double a[11],h[11];double v[11],dis[11];double ans[11];int n,m,st;double s;void getv(){ int i=st,j=0; double sv=0.,last=0.; while(i<n){ if(j<=m &&ck[j].x<h[i]-eps){ sv+=a[i]*ck[j].d; last=ck[j++].x; } else{ v[i]=sv; dis[i]=h[i]-last; ++i; } }}int main(){ while(scanf("%d %d %lf",&n,&m,&s)==3){ for(int i=0;i<n;++i){ scanf("%lf %lf",h+i,a+i); h[i]/=s; if(i>0) h[i]+=h[i-1]; } for(int i=0;i<m;++i){ scanf("%lf %lf",&ck[i].x,&ck[i].d); ck[i].d/=s; } double q; scanf("%lf",&q); ck[m].d=q/s,ck[m].x=0.; sort(ck,ck+m+1); memset(ans,0,sizeof(ans)); for(st=0;st<n;){ getv(); int next=-1; for(int i=st;i<n;++i) if(next<0 || dis[i]/v[i]<dis[next]/v[next]) next=i; double tm=dis[next]/v[next]; ans[st]+=tm*q*a[st]; for(int i=st;i<n;++i){ h[i]-=v[i]*tm; } if(h[st]<eps) ++st; } for(int i=0;i<n;++i) printf("%.10fn",ans[i]); } return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号