Codeforces Round #700 (Div. 2) B(简单思维)
Posted 行码棋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #700 (Div. 2) B(简单思维)相关的知识,希望对你有一定的参考价值。
B
思路:
骑士有一个生命值,先把所有怪兽的伤害值减掉,然后加上所有怪兽的最大攻击值,判断其与0的大小。为什么呢?可能最后一次骑士打死怪兽之后就会死亡,只要加上最大的攻击值就会回到进行最后一次攻击前的状态,如果此时骑士的生命值大于0,就可以打死所有怪兽。
注意:数据要开ll,因为乘法会爆int
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int ,int> pii;
const int N = 1e5+5;
ll a[N],b[N];
ll A,B,n;
void solve()
{
cin>>A>>B>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
for(int i=1;i<=n;i++) B-=(b[i]+A-1)/A*a[i];
if((B+*max_element(a+1,a+1+n))>0) cout<< "YES\\n";
else cout<< "NO\\n";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int _;cin>>_;
while(_--){
solve();
}
}
以上是关于Codeforces Round #700 (Div. 2) B(简单思维)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #364 (Div. 1) 700B(树)
Codeforces Round #700 (Div. 2) B(简单思维)
Codeforces Round #436 E. Fire(背包dp+输出路径)
Codeforces Round #519 by Botan Investments