斗地主大师 斗地主大师今天有P个欢乐豆,他夜观天象,算出了一个幸运数字Q,如果他能有恰好Q个欢乐豆,就可以轻松完成程设大作业了。 斗地主大师显然是斗地主大师,可以在斗地主的时候轻松操控游戏的输赢。 1.他可以轻松赢一把,让自己的欢乐豆变成原来的Y倍 2.他也可以故意输一把,损失X个欢乐豆(注意欢乐豆显然不能变成负数,所以如果手里没有X个豆就不能用这个能力) 而斗地主大师还有一种怪癖,扑克除去大小王只有52张,所以他一天之内最多只会打52把斗地主。 斗地主大师希望你能告诉他,为了把P个欢乐豆变成Q个,他至少要打多少把斗地主? 时间限制:1000 内存限制:65536 输入 第一行4个正整数 P,Q,X,Y 0< P,X,Q <= 2^31, 1< Y <= 225 输出 输出一个数表示斗地主大师至少要用多少次能力 如果打了52次斗地主也不能把P个欢乐豆变成Q个,请输出一行 “Failed” 样例输入 输入样例1: 2 2333 666 8 输入样例2: 1264574 285855522 26746122 3 样例输出 输出样例1: Failed 输出样例2: 33 提示 可以考虑深搜 要用long long
正确答案:参考程序(C++):斗地主DFS/BFS。操作:赢变P*Y,输减X。用DFS搜索达到Q的最少步数,超52步或P<0剪枝。样例2 2333 666 8→Failed。核心:DFS枚举操作。
试卷来源:202209 青少年等级考试C/C++真题五级