洛谷P2006--赵神牛的游戏_题解

来源:互联网 发布:冷笑话 知乎 编辑:程序博客网 时间:2024/06/07 03:39

/*

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;//结束程序}
原创粉丝点击