HDU-#4438 Hunters
2014-10-20 15:52
489 查看
题目大意:Alice and Bob两个人去打猎,北山有虎,南山有狼,现在两个人有两种选择,当一个人去一个方向的时候打到的概率为1,否则Alice获得猎物概率为p,而他知道Bob要去打老虎的概率是q,问Alice能够赢得的最高分是多少?
解题思路:只有两种情况下,对于Alice而言,她要去打老虎,则为Bob选择打老虎Alice得到猎物的概率为:p*q。Bob不选择打老虎Alice得到猎物的概率为:(1-q)*(x*1.0/(x+y),综上两种情况Alice选择打老虎的得分即为(p*q+(1-q)*(x*1.0/(x+y)))*(x+y)。如果Alice选择打狼,则同理可得(p*(1-q)+q*(y*1.0/(x+y)))*(x+y)。最后比较她两种选择最高得分输出即可,详见code。
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4438
code:
解题思路:只有两种情况下,对于Alice而言,她要去打老虎,则为Bob选择打老虎Alice得到猎物的概率为:p*q。Bob不选择打老虎Alice得到猎物的概率为:(1-q)*(x*1.0/(x+y),综上两种情况Alice选择打老虎的得分即为(p*q+(1-q)*(x*1.0/(x+y)))*(x+y)。如果Alice选择打狼,则同理可得(p*(1-q)+q*(y*1.0/(x+y)))*(x+y)。最后比较她两种选择最高得分输出即可,详见code。
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4438
code:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int x,y,t; double p,q,ans1,ans2; int main(){ //freopen("input.txt","r",stdin); scanf("%d",&t); while(t--){ scanf("%d%d%lf%lf",&x,&y,&p,&q); ans1=(p*q+(1-q)*(x*1.0/(x+y)))*(x+y); ans2=(p*(1-q)+q*(y*1.0/(x+y)))*(x+y); if(ans1>ans2) printf("tiger %.4f\n",ans1); else printf("wolf %.4f\n",ans2); } return 0; }
相关文章推荐
- HDU 4438 Hunters 简单概率
- HDU-4438 Hunters 期望 水
- HDU-4438-Hunters
- hdu 4438 Hunters【数学水题】
- HDU 4438 Hunters 概率期望 2012 Asia Tianjin Regional Contest
- hdu 4438 Hunters(数学期望)
- HDU 4438 Hunters 区域赛水题
- HDU 4438 Hunters
- HDU 4438 Hunters (数学,概率计算)
- hdu 4438 Hunters
- HDU 4438 Hunters(模拟)
- HDU—— 4438 Hunters
- hdu 4438 Hunters
- hdu 4438 && la 6389
- hdu(4438)
- hdu 4438 推公式求概率水题
- HDU 4438 水
- poj 4438 Hunters
- hdu 4438 第37届ACM/ICPC 天津赛区现场赛H题
- HDU 4438 概率 多个情况下的数学期望