csp-j T2 65分求助(悬关)
  • 板块学术版
  • 楼主9gehetao
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/10/22 14:28
  • 上次更新2023/11/2 11:54:37
查看原帖
csp-j T2 65分求助(悬关)
600143
9gehetao楼主2023/10/22 14:28
#include<bits/stdc++.h>
using namespace std;
long long a[10000001],b[10000001],f[10000001],g[10000001],x[10000001];
template<typename type>
inline void read(type &x) {
    x = 0; bool flag(0);
	char ch = getchar();
    while(!isdigit(ch)) flag = ch == '-', ch = getchar();
    while(isdigit(ch)) x = (x << 1) + (x << 3) + (ch ^ 48), ch = getchar();
    flag ? x = -x : 0;
}
int main()
{
    long long n,d;
    read(n);
    read(d);
    for(int i=2;i<=n;i++)  read(a[i]);
    for(int i=1;i<=n;i++)  read(b[i]);
    g[1]=b[1];
    for(int i=2;i<=n;i++)
    {
        g[i]=min(g[i-1],b[i]);
        a[i]-=x[i-1];
        x[i]=((a[i]-1)/d+1)*d-a[i];
        f[i]=f[i-1]+g[i-1]*((a[i]-1)/d+1);
    }
    cout<<f[n]<<endl;
    return 0;
}
2023/10/22 14:28
加载中...