ZOJ2929 Penalty Kick(概率)
题目挺水的,但由于其独特的阅读量比赛的时候没发现这道水题,在此做一下翻译,如果有人搜到这翻译的话有帮助的话自然最好啦。
中国队平局进入最后的点球决胜局,首先抛硬币决定谁先罚球,然后先是罚五球,如果罚的过程发现某一方不可能再胜出了,那么就不需要再踢下去。假如踢完5球之后还是平局,那么就由剩下的人继续踢球,已经踢过的人可以再踢的条件是他的所有队友都踢过了,所以先是前5个人踢,然后后6个人踢,如果其中一方比对方多一分就直接结束了,否则的话继续踢下去,如果11个都踢完了就再重复的踢一下,不停地重复直至决出胜负。
犯了个SB错误,while(~scanf("%d",&tmp)!=EOF) 然后我就不停地TLE了。
#pragma warning(disable:4996)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
using namespace std; double my[15];
double en;
double tp;
double kp;
double hp; void dfs(int step, int u, int v, double p)
{
if (step == 6){
if (u > v) tp += p;
if (v > u) kp += p;
return;
}
double p1 = p*my[step];
double p2 = p*(1 - my[step]); if (u > v + 5 - step) tp += p1*en + p2*(1 - en);
else if (v > u + 5 - step) kp += p1*en + p2*(1 - en);
else dfs(step + 1, u, v, p1*en + p2*(1 - en)); if (u + 1 > v + 5 - step) tp += p1*(1 - en);
else if (v > u + 1 + 5 - step) kp += p1*(1 - en);
else dfs(step + 1, u + 1, v, p1*(1 - en)); if (u > v + 1 + 5 - step) tp += p2*en;
else if (v + 1 > u + 5 - step) kp += p2*en;
else dfs(step + 1, u, v + 1, p2*en);
} int main()
{
int tmp;
while (~scanf("%d", &tmp))
{
my[1] = double(tmp) / 100;
for (int i = 2; i <= 11; i++){
scanf("%d", &tmp);
my[i] = double(tmp) / 100;
}
scanf("%d", &tmp);
en = double(tmp) / 100;
sort(my + 1, my + 1 + 11);
reverse(my + 1, my + 1 + 11);
tp = kp = 0;
dfs(1, 0, 0, 1);
hp = 1 - tp - kp;
for (int i = 6; i <= 11; i++){
tp += hp*(my[i] * (1 - en));
hp = hp*(my[i] * en + (1 - my[i])*(1 - en));
}
for (int k = 1; k <= 100; k++){
for (int i = 1; i <= 11; i++){
tp += hp*(my[i] * (1 - en));
hp = hp*(my[i] * en + (1 - my[i])*(1 - en));
}
}
tp *= 100;
printf("%.4lf\n", tp);
}
return 0;
}
ZOJ2929 Penalty Kick(概率)的更多相关文章
- Kick the ball!(dfs)湖南省赛第十届
Problem K: Kick the ball! Time Limit: 1 Sec Memory Limit: 128 MB Special Judge Submit: 109 Solved ...
- PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)
主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...
- 机器学习入门-概率阈值的逻辑回归对准确度和召回率的影响 lr.predict_proba(获得预测样本的概率值)
1.lr.predict_proba(under_text_x) 获得的是正负的概率值 在sklearn逻辑回归的计算过程中,使用的是大于0.5的是正值,小于0.5的是负值,我们使用使用不同的概率结 ...
- Wasserstein GAN最新进展:从weight clipping到gradient penalty,更加先进的Lipschitz限制手法
前段时间,Wasserstein GAN以其精巧的理论分析.简单至极的算法实现.出色的实验效果,在GAN研究圈内掀起了一阵热潮(对WGAN不熟悉的读者,可以参考我之前写的介绍文章:令人拍案叫绝的Was ...
- [bzoj2152][聪聪和可可] (点分治+概率)
Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好 ...
- sqlserver中根据表中的配置概率取到数据
create proc pr_zhanglei_test1 /*功能描述: 根据t_zhanglei_test1中perc设置的概率,取到相应数据old_id */ as declare @per ...
- 【BZOJ-3143】游走 高斯消元 + 概率期望
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2264 Solved: 987[Submit][Status] ...
- 【BZOJ-3270】博物馆 高斯消元 + 概率期望
3270: 博物馆 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 292 Solved: 158[Submit][Status][Discuss] ...
- UVA1637Double Patience(概率 + 记忆化搜索)
训练指南P327 题意:36张牌分成9堆, 每堆4张牌.每次拿走某两堆顶部的牌,但需要点数相同.如果出现多种拿法则等概率的随机拿. 如果最后拿完所有的牌则游戏成功,求成功的概率. 开个9维数组表示每一 ...
随机推荐
- lnmp的使用
命令 1.状态管理 lnmp {start|stop|reload|restart|kill|status} 2.添加虚拟host lnmp vhost add
- 算法系列4《Luhn》
Luhn算法由IBM的Hans Peter Luhn发明,又称为"模10"算法,是一种简单的校验和算法,用来验证识别号,一般会被用于身份证号码,信用卡号.IMEI号.社会保险号的验 ...
- oracle 约束
约束是表中列的属性,用来维护数据结构完整性的一种手段约束的种类:NOT NULLUNIQUEPARIAMRY KEYFOREIGN KEYCHECK enble validate 检查现有数据和新数据 ...
- Node.js中的模块化
每天一篇文章来记录记录自己的成长吧.大二,该静心了.加油~ 好了,废话不多说,今天说说nodejs中的模块化.(注:此文为自己对书nodejs实战的总结) nodejs一个重要的特性就是模块化,模块就 ...
- gravity、layout_gravity、ayout_weight 区别及用法
layout_gravity 表示组件自身在父组件中的位置. gravity 表示组件的子组件在组件中的位置. weight 意思是权重.比重,即当前控件在画布中所占的空间 ...
- Unity3d Shortcuts
参考:http://www.ceeger.com/Manual/ 场景视图导航 Click-drag to drag the camera around. 点击拖拽平移场景视图 Hold Alt a ...
- iOS学习之C语言循环结构
一.while循环 while (循环条件) { 循环体: } // 1.定义循环变量 int time = 1; // 2.循环条件 while ( ...
- MongoDB学习笔记-游标
理解MongoDB的游标有两种维度:客户端和服务器端.下面将从这两方面来说明. 客户端 find方法返回值是一个游标.可以通过游标来对最终结果进行控制.比如限制结果数量,略过某一部分,根据任意键按任意 ...
- 使用JSON的数据格式
在说JSON之前,我们先来看一下在javascript中创建对象的方式,也就是创建对象的字面量表示法.我们知道js中有五种基本的数据类型,分别是: Undefined(变量可能没有声明或者赋值) ...
- char,wchar_t,WCHAR,TCHAR,ACHAR的区别----LPCTSTR
转自http://blog.chinaunix.net/uid-7608308-id-2048125.html 简介:这是DWORD及LPCTSTR类型的了解的详细页面,介绍了和类,有关的知识,加入收 ...