10分……纯小白一个只有#5对 #2#7#10超时 麻烦各路神仙指正 感谢不已

P2006 赵神牛的游戏

1._while_ 循环没有必要,可以直接由 _( k/a)*b>=n_ 来计算伤害是否可以打败Boos。while循环会导致超时。 2.注意在 _(k/a)*b>=n_ 中a可能为0,所以进行一个特殊判定,遇到 _a=0_ 的情况(不消耗法力值,只要伤害是正数就一定能打败boos)直接判断这个技能可以打败boss。 代码: ```c #include <iostream> using namespace std; int main() { int a,b,flag=0; int k,m,n; cin>>k>>m>>n; for(int i=1;i<=m;i++) { cin>>a>>b; if(a==0 && b>0) { flag=1; cout<<i<<" "; continue; } if((k/a)*b>=n) { flag=1; cout<<i<<" "; } } if(flag==0){ cout<<"-1"<<endl; } return 0; } ```
by thrznb666 @ 2022-10-02 16:43:06


@[CYF123469](/user/803133) 你不能直接改变 $k$ 啊,应该弄一个局部变量来表示放这个技能时消耗的法力。 而且也不需要模拟放技能的过程,直接用除法算出每个技能能放多少次以及打死boss需要多少次,再比较一下就行了。
by Ja50nY0un9_as_AgNO3 @ 2022-10-02 16:45:16


~~lz分号前打空格码风清奇~~
by New_Beginning @ 2022-10-02 16:56:47


@[Ja50nY0un9](/user/363302) _十分感谢 已经通过了_
by CYF123469 @ 2022-10-02 17:02:41


@[thrznb666](/user/673585) 感谢 我明白了
by CYF123469 @ 2022-10-02 17:03:13


|