社区讨论

30求救

P9749[CSP-J 2023] 公路参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@loi5tn63
此快照首次捕获于
2023/11/03 13:13
2 年前
此快照最后确认于
2023/11/03 16:42
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
const int N=100005;
int n,d,i,a[N],v[N];
long long q,ans,distmp;
int main() {
	scanf("%d%d",&n,&d);
	for(i=1;i<n;i++)
		scanf("%d",&a[i]);
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
	for(i=2;i<=n;i++) 
		if(v[i]>v[i-1])
			v[i]=v[i-1];
	for(i=1;i<n;i++) {
		int dis=a[i]-distmp; //need to do
		//v[i] means cost
		//a[i] means dis between last-now
		if(dis<=0) {
			distmp=-dis;
			continue;
		}
		if(dis%d==0) 
			q=dis/d;
		else q=dis/d+1;
		ans+=q*v[i];
		distmp=q*d-a[i];
	}
	printf("%lld",ans);
	return 0;
} 

回复

0 条回复,欢迎继续交流。

正在加载回复...