社区讨论
求助,50分(c++,玄关2个
P9749[CSP-J 2023] 公路参与者 5已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @lymxwk4q
- 此快照首次捕获于
- 2024/07/15 20:07 2 年前
- 此快照最后确认于
- 2024/07/15 20:59 2 年前
CPP
//抄袭可耻!!!
#include<bits/stdc++.h>
using namespace std;
int a[100010];
int u[100010];
int f[100010];
int n,d;
int money=0;
int k=1;
int pre=0;
int p=0;
int t=0;
int main()
{
cin>>n>>d;//n=公路上站点的数量,d=车每升油可以前进的距离
//f[0]=0;
for(int i=2;i<=n;i++)//2到n是因为输入条件中有些从u[1]输入到u[n-1]
{
cin>>u[i];//表示站点间的距离
f[i]=f[i-1]+u[i];//表示到当前站点的总距离
}
for(int i=1;i<=n;i++)cin>>a[i];//表示在不同站点加油的价格
for(int i=2;i<=n;i++)//2到n是因为输入导致这个循环中也要从u[1]到u[n-1]
{
if(a[i]<a[k]||i==n)
{
p=f[i]-f[k];
if(p<=pre)
{
pre=pre-p;
k=i;
}
else
{
p=p-pre;
if(p%d==0)
{
t=p/d;
money=money+t*a[k];
}
else
{
t=p/d+1;
money=money+t*a[k];
pre=t*d-p;
}
k=i;
}
}
}
cout<<money;
return 0;
}
/*
5 4
10 10 10 10
9 8 9 6 5
*/
//习惯打样例,是过了的
求求各位了,本蒟蒻在机房的比赛时间一直在改这道题
回复
共 8 条回复,欢迎继续交流。
正在加载回复...