题意:有n个城市编号从1–n,然后你从1号城市开始出发,由于你每天需要摄入b个椰子;
但是呢,你从一个城市到另一个城市需要对应的Di天,那么问你能不能在每天保证摄入b个椰子的时候能够到达n号城市,并且每个城市会有Ci个椰子,你可以获得;
其实就是一个简单的图而已:
可以这样理解:
可以很明显发现这个东西和最后一个城市没关系;
所以我只需要算积累的Ci值的和-消耗的Di*b的和,判断是否小于0就可以了;
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
int C[1050],D[1050];
while(T--){
int n,b;
scanf("%d%d",&n,&b);
for(int i=0;i<n;i++)scanf("%d",C+i);
for(int i=0;i<n-1;i++)scanf("%d",D+i);
int sum1=0,sum2=0,f=0;
for(int i=0;i<n-1;i++){
sum1+=b*D[i];//消耗的总的椰子数目
sum2+=C[i];//积累的总的椰子数目
if(sum2-sum1<0){
f=1;
break;
}
}
if(f)puts("No");
else puts("Yes");
}
return 0;
}