傳送門
由于需要打死每個怪物,打死第 i i i個怪物需要攻擊 k i k_i ki?次,其中
k i = b [ i ] / A + ( b [ i ] % A ! = 0 ) k_i=b[i]/A+(b[i]\%A!=0) ki?=b[i]/A+(b[i]%A!=0)
我們累加所有怪物的 k i k_i ki?,然后直接去和主角血量 A A A做比較嗎??
當然不是,因為最后一次戰斗后,主角的血量是負數也無所謂
所以我們記錄一個怪物最大的 a i a_i ai?記作 m x mx mx,把這個 m x mx mx留在最后一次打
那么只需要在打最后一次之前,血量大于零即可,寫成式子就是
( ∑ i = 1 n k i ? a ) ? m x > B (\sum\limits_{i=1}^{n}k_i*a)-mx>B (i=1∑n?ki??a)?mx>B
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 3e5+10;
int a[maxn],b[maxn],t,n;
signed main()
{
cin >> t;
while( t-- )
{
int A,B;
scanf("%lld%lld",&A,&B);
int nowa = 0,mx = 0;
cin >> n;
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
for(int i=1;i<=n;i++) scanf("%lld",&b[i]);
for(int i=1;i<=n;i++)
{
int ci = b[i]/A+(b[i]%A!=0);
nowa += ci*a[i];
mx = max( mx,a[i] );
}
if( nowa-mx>B ) cout << "NO\n";
else cout << "YES\n";
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258093.html
標籤:其他
上一篇:身在北京即可,報名僅限兩天,北京數字人民幣試點活動今日開啟,共發放五萬份 200 元紅包...
下一篇:Codeforces Round #700 (Div. 2)-A. Yet Another String Game-題解--三目運算子
