#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<string>
using namespace std;
#define LL long long
#define Max 200005
int a[Max]/*每级获得的钱数*/,b[Max]/*升级所需的钱数*/;
LL k[Max]/*升到每级最少的天数*/,w[Max]/*最快升到每级剩的钱数*/;
int t;
int main()
{
scanf("%d",&t);
while (t--)
{
int n,c;
scanf("%d%d",&n,&c);
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
for (int i=1;i<n;i++) scanf("%d",&b[i]);
k[1]=1,w[1]=a[1];
for (int i=2;i<=n;i++)
{
k[i]=1ll*k[i-1]+(1ll*b[i-1]-w[i-1]+a[i-1]-1)/a[i-1]+1;
w[i]=1ll*(b[i-1]-w[i-1]+a[i-1]-1)/a[i-1]*a[i-1]+w[i-1]-b[i-1];
}
LL miin=1ll*(c+a[1]-1)/a[1];/*不升级攒钱买电脑*/
for (int i=2;i<=n;i++)
{
LL m=1ll*k[i]+1ll*(c-w[i]+a[i]-1)/a[i];/*求出升到第i级后一直攒钱买电脑所需的天数*/
miin=min(maxn,m);/*球最小值*/
}
printf("%lld\n",miin);
}
return 0;
}
我写题解的时候,相同的源码,这玩意儿真是惨不忍睹啊