社区讨论
45 pts求助
P9749[CSP-J 2023] 公路参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lojfhatq
- 此快照首次捕获于
- 2023/11/04 10:31 2 年前
- 此快照最后确认于
- 2023/11/04 12:25 2 年前
是思路的问题还是细节有问题,求助
CPP#include<bits/stdc++.h>
using namespace std;
int n,d;
long long v[100005],a[100005];
int main()
{
ios::sync_with_stdio(0);
cin>>n>>d;
long long tot=0;
for(int i=1;i<=n-1;i++)
{
cin>>v[i];
tot+=v[i];
}
for(int i=1;i<=n;i++)cin>>a[i];
a[n]=0;
long long last=0,ans=0,loc=1; //last是剩余油数,loc是下一个比现在油价低的位置
for(int i=1;tot>0 && i<=n;i=loc)
{
long long dis=0;
for(int j=i;j<=n;j++) //找loc
{
if(a[j]<a[i])
{
loc=j;
break;
}
dis+=v[j];
}
// cout<<i<<" "<<loc<<" "<<dis<<" "<<endl;
if((dis-last)%d!=0)
{
ans+=((dis-last)/d+1)*a[i];
last+=(dis-last)%d;
}
else ans+=(dis/d)*a[i];
tot-=dis;
}
cout<<ans<<endl;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...