赞
踩
题目问hero能否杀死所有的怪兽
刚开始想简单了,我以为不用排序直接,一个一个的看
这样就死在了这样的样例
2 2 2
2 1
2 2
hero攻击力为2,生命值为 2,第一个怪兽攻击力2,生命力2。第二个怪兽攻击力1,生命力2.。 如果不排序,那么hero杀死第一个怪兽后自己也牺牲了,就不能杀死所有的怪兽。
#include<bits/stdc++.h> #define endl '\n' #define ll long long using namespace std; const int N = 1e5+9; struct node { ll a,b; bool operator <(const node &t) const { if(a!=t.a) return a<t.a; else return b<t.b; } }e[N]; int main() { int t; cin>>t; while(t--) { ll A,B,n; scanf("%lld%lld%lld",&A,&B,&n); int flag =1; for(int i=0 ;i<n; i++) { scanf("%lld",&e[i].a); } for(int i=0; i<n; i++) { scanf("%lld",&e[i].b); } sort(e,e+n); for(int i=0; i<n; i++) { ll cnt1 = (ll)(ceil(B*1.0/e[i].a));//英雄被杀死的次数 ll cnt2 = (ll)(ceil(e[i].b*1.0/A));//怪兽i被杀死的次数 if(cnt1<cnt2) { flag=0; break; } B-=(ll)(cnt2*e[i].a); } if(!flag) puts("NO"); else puts("YES"); } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。