当前位置:
首页 >
P1016 旅行家的预算
发布时间:2024/4/15
55
豆豆
生活随笔
收集整理的这篇文章主要介绍了
P1016 旅行家的预算
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
题面:https://www.luogu.org/problem/P1016
本题直接贪心之后dfs即可,注意dfs要讨论两种情况. Code: #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> #include<ctime> using namespace std; const int N=10005; int n,f; double ans=100000000.00,d1,c,d2,d[N],p[N],dis[N]; void dfs(int now,double oil,double cost){if(now==n+1){if(cost<ans){ans=cost;}f=1;return;}if(c*d2<dis[now]){return;}double nd=0.00;for(int i=now;i<=n;i++){nd+=dis[i];if(d2*c<nd){break;}dfs(i+1,c-nd/d2,cost+p[now]*(c-oil));dfs(i+1,0.00,cost+max(0.00,p[now]*nd/d2-p[now]*oil));}return; } int main(){scanf("%lf%lf%lf%lf%d",&d1,&c,&d2,&p[0],&n);for(int i=1;i<=n;i++){scanf("%lf%lf",&d[i],&p[i]);dis[i-1]=d[i]-d[i-1];}dis[n]=d1-d[n];dfs(0,0.00,0.00);if(f){printf("%.2lf\n",ans);}else{printf("No Solution\n");}return 0; }转载于:https://www.cnblogs.com/ukcxrtjr/p/11485355.html
总结
以上是生活随笔为你收集整理的P1016 旅行家的预算的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: JWT签名与验签
- 下一篇: P4144 大河的序列