HDU 4438 Hunters
来源:互联网 发布:mysql时间转日期函数 编辑:程序博客网 时间:2024/05/16 16:13
题意:A和B比赛打猎,有老虎和狼两种猎物,如果A和B首先选择打的是不同的猎物,那么A和B都可以把他们选择的猎物打死,如果A和B首先选择打的是同一种猎物,那么A打死猎物的可能性是p,B打死猎物的可能性是1-p,打死一只猎物后,他们会选择去打另一种猎物,同样A打死猎物的可能性是p,B打死猎物的可能性是1-p,打死老虎得x分,打死狼得y分,现在A知道B首次选择打老虎的概率是q,首次选择打狼的概率是1-q,要使A的得分最高,求A首次选择打的猎物以及A的得分
解题思路:求期望.若A首先选择老虎,接下来就有两种情况,一种是B也选择老虎,此时A得x分的概率是p*(1-p),得y分的概率是(1-p)*p,得(x+y)分的概率是p*p,得0分的概率是(1-p)*(1-p),另一种是B选择狼,那么A只能得x分,也就是说A得x分的概率是1,这种情况的期望ans1=(x*p*(1-p)+y*(1-p)*p+(x+y)*p*p)*q+x*(1-q),若A首先选择狼,同理也有两种情况,一种是B也选择狼,此时A得x分的概率是(1-p)*p,得y分的概率是p*(1-p),得(x+y)分的概率是p*p,得0分的概率是(1-p)*(1-p),另一种是B选择老虎,那么A只能得y分,也就是说A得y分的概率是1,这种情况的期望是ans2=(x*p*(1-p)+y*(1-p)*p+(x+y)*p*p)*(1-q)+y*q,判断两种情况哪种期望值大选哪种即可
代码:
#include <iostream>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <cstdio>using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { double x,y,p,q; scanf("%lf%lf%lf%lf",&x,&y,&p,&q); double ans1=(x*p*(1-p)+y*(1-p)*p+(x+y)*p*p)*q+x*(1-q); double ans2=(x*p*(1-p)+y*(1-p)*p+(x+y)*p*p)*(1-q)+y*q; if(ans1>ans2)printf("tiger %.4lf\n",ans1); else printf("wolf %.4lf\n",ans2); } return 0;}
阅读全文
0 0
- 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 Hunters
- hdu 4438 Hunters(数学期望)
- hdu 4438 Hunters【数学水题】
- 哈理工校园编程练习赛杭电 acm 4438 D.Hunters
- hdu44438 Hunters
- hdu4438 - Hunters
- hdu4438 Hunters
- [hdu4438]Hunters
- [HDU4438][TJ08H]Hunters
- A - Hunters题解
- [C++]MYSQL 数据库操作封装及连接池实现
- ta_lib安装与测试
- Windows编程之旅(七)
- JAVAWEB整理
- WordPress——WooCommerce用于显示商品
- HDU 4438 Hunters
- 内部函数和外部函数
- Xampp control panel 中apache启动不了,如何解决
- Java集合框架的知识总结(1)
- 实训第二天,希望能坚持下去共勉。
- 七牛云 js前端上传文件
- Tensorflow快速入门2--实现手写数字识别
- struts2 入门实例原理与流程 过程理解
- 算法概论 习题8.16