社区讨论
样例过了,为啥只有10分?
P1180驾车旅游参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m1jbok3n
- 此快照首次捕获于
- 2024/09/26 21:21 去年
- 此快照最后确认于
- 2025/11/04 18:44 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int n;
double s,c;
double ekm,sprize;
double ans,km[55],pr[55];
void dfs(int step,double money,double soil){
if (step==n+1){
ans=min(ans,money);
}
else{
soil-=(km[step]-km[step-1])/ekm;
if (soil*ekm<km[step+1]-km[step]){
dfs(step+1,money+20+pr[step]*(c-soil),c);
}
else if (soil*2<c){
dfs(step+1,ekm+20+pr[step]*(c-soil),c);
dfs(step+1,money,soil);
}
else{
dfs(step+1,money,soil);
}
}
}
int main(){
cin>>s;
cin>>c>>ekm>>sprize>>n;
ans=sprize;
km[n+1]=s;
for(int i=1;i<=n;i++){
cin>>km[i]>>pr[i];
ans+=pr[i]*c+20;
}
dfs(1,sprize,c);
printf("%.1lf",ans);
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...