洛谷P2006--赵神牛的游戏

xiaoxiao2021-02-28  83

/*

P2006 题解

循环+模拟

*/

#include <cstdio>//头文件 int main()//主函数 { int k=0,m=0,n=0;//定义变量k、n和m,表示他一共有k点法力值,一共有m个技能,而boss的体力值为n bool flag=false;//开一个布尔变量,如果模拟完了flag的值还是false的话就表明当前没有任何的一个技能能够打败boss,那么就输出-1,否则,如果flag的值为true的话就表明当前至少有一个招数可以打败boss scanf("%d %d %d",&k,&m,&n);//读入k、m和n,表示他一共有k点法力值,一共有m个技能,而boss的体力值为n for(int i=1;i<=m;i++)//读入每个技能耗费的法力值和可以造成的对boss的伤害值 { int x=0,y=0;//x表示第i个技能耗费的法力值,y表示第i个技能可以造成的对boss的伤害值 scanf("%d %d",&x,&y);//读入第i个技能耗费的法力值和可以造成的对boss的伤害值 if(x!=0)//这是为了预防除数为0的判断 { int ans=(k/x)*y;//ans表示只用这个技能最多能够对这个boss产生多少的伤害值 if(ans>=n)//如果能够杀死这个boss { printf("%d ",i);//那么就去输出这个技能的编号 flag=true;//标记一下 } } else if(x==0 && y!=0)//否则如果除数为0(即第i个技能可以放无限次,“第i个技能”也可以称作“编号为i的这个技能”) { printf("%d ",i);//输出它的编号 flag=true;//标记一下 } } if(flag==false)//如果模拟完了flag的值还是false的话就表明当前没有任何的一个技能能够打败boss { printf("-1");//那么就输出-1 } return 0;//结束程序 }
转载请注明原文地址: https://www.6miu.com/read-22159.html

最新回复(0)