C - 斩龙
模拟战斗过程:先将 D r a g o n Dragon Dragon 全部击败才能对 V i r m Virm Virm 进行攻击
在
V
i
r
m
Virm
Virm 加入战斗后,当我们伤害能一下击败一只
D
r
a
g
o
n
Dragon
Dragon 时,该只
D
r
a
g
o
n
Dragon
Dragon
不能造成伤害,但
V
i
r
m
Virm
Virm 能造成一次伤害;
最终
F
r
a
n
x
x
Franxx
Franxx 剩余血量应大于
0
0
0,才能胜利。(血量只有大于
0
0
0,才能发动最
后一击)
时间复杂度: O ( 1 ) O(1) O(1)
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
LL A1,H1;cin>>A1>>H1;
LL A2,H2,x;cin>>A2>>H2>>x;
LL k;cin>>k;
LL A3,H3;cin>>A3>>H3;
LL ans=0;
LL d1=x-k;
LL ch1=(H2+A1-1)/A1;
ans+=ch1*d1;//dayu k gongji
H1-=(ch1-1)*d1*A2;//Dragon gongji
ans+=ch1*k;// xiaoyu k gongji
H1-=(ch1-1)*k*A2;//Dragon gongji
H1-=(ch1*k*A3);//Virm gongji
LL ch2=(H3+A1-1)/A1;//1 vs 1
ans+=ch2;
H1-=(ch2-1)*A3;
if(H1>0) cout<<ans;
else cout<<"No Franxx!";
return 0;
}