社区讨论

CSP-J T2 求调

灌水区参与者 5已保存回复 14

讨论操作

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

当前回复
13 条
当前快照
1 份
快照标识符
@loasdd9t
此快照首次捕获于
2023/10/29 09:22
2 年前
此快照最后确认于
2023/11/02 10:58
2 年前
查看原帖
65pts,两个样例都过了
CPP
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
const int MAXN=1e5+5;

int n,d;
int v[MAXN],a[MAXN];
int nxt[MAXN];

signed main(){
	freopen("road.in","r",stdin);
	freopen("road.out","w",stdout);

	std::cin>>n>>d;
	for(int i=1;i<n;i++)std::cin>>v[i];//距离 
	for(int i=1;i<=n;i++)std::cin>>a[i];//价格 
	
	int now=0;
	int you=1e6;
	int kilo=0;
	for(int i=1;i<=n;i++){
		
		int x;//油的升数 
		if ((v[i-1]-kilo)%d==0){
			x=(v[i-1]-kilo)/d;
			kilo=0;
		}else{
			x=(v[i-1]-kilo)/d+1;
			kilo=(x*d)-(v[i-1]-kilo);
		}
		
		nxt[now]+=x*a[now];
		if(a[i]<you){
			you=a[i];
			now=i;
		}
	}
	
	int ans=0;
	for(int i=1;i<=n;i++)ans+=nxt[i];
	std::cout<<ans<<endl;

	return 0;
}

回复

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

正在加载回复...