J组T2 50分是什么原因啊
  • 板块灌水区
  • 楼主Joker_Tan
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/10/21 19:16
  • 上次更新2023/11/2 12:12:06
查看原帖
J组T2 50分是什么原因啊
482396
Joker_Tan楼主2023/10/21 19:16

代码如下

#include <bits/stdc++.h>
using namespace std;

const int MAXN=1e5+10;
const int INF=0x3f3f3f3f;

int n,d;
int v[MAXN]={};

int a[MAXN]={};
int f[MAXN]={};

signed main() {
	freopen("road.in","r",stdin);
	freopen("road.out","w",stdout);
	cin>>n>>d;
	int cnt=0;
	int sum=0; 
	int minn=INF,t=1;
	for(register int i=1;i<=n-1;i++) {
		cin>>v[i];
	}
	for(register int i=1;i<=n;i++) {
		cin>>a[i];
	}
	for(register int i=1;i<=n-1;i++) {
		sum=sum+v[i];
		if(minn>a[i]) {
			minn=a[i]; t=i;
		}
		if(cnt*d<sum) {
			int teg=sum-cnt*d;
			if(teg%d==0) {
				f[t]=f[t]+teg/d;
				cnt=cnt+teg/d;
			}
			else if(teg%d!=0) {
				f[t]=f[t]+teg/d+1;
				cnt=cnt+teg/d+1;
			}
		}
	}
	int ans=0;
	for(register int i=1;i<=n;i++) {
		ans=ans+f[i]*a[i];
	}
	cout<<ans<<endl;
	return 0;
}
2023/10/21 19:16
加载中...