社区讨论
爆零求解
P9749[CSP-J 2023] 公路参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0rlmb
- 此快照首次捕获于
- 2025/11/03 18:50 4 个月前
- 此快照最后确认于
- 2025/11/03 18:50 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int n,m,a,b,c,ans,w[100001],e[100001];
int main() {
cin>>n>>m;
for(int i=2;i<=n;i++) {
cin>>w[i];
w[i]+=w[i-1];
}
for(int i=1;i<=n;i++){
cin>>e[i];
}
int x=0;
for(int i=1;i<n;i++){
int km=0,ww,ii;
bool k=true;
for(int j=i+1;j<=n;j++){
if(e[j]<e[i]){
km=ceil(1.0*(w[j]-w[i]-x)/m);
ww=w[j]-w[i]-x;
k=false;
//cout<<w[j]<<" "<<w[i]<<" "<<x<<endl;
ii=j-1;
//cout<<j<<" "<<km;
break;
}
}
if(k){
ans+=ceil(1.0*(w[n]-w[i]-x)/m)*e[i];
cout<<ans;
return 0;
}
x+=km*4-ww;
ans+=km*e[i];
i=max(i,ii);
//cout<<x<<endl;
}
cout<<ans;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...