P1016 旅行家的预算
生活随笔
收集整理的這篇文章主要介紹了
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 大河的序列