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维数组表示每一 ...
随机推荐
- EmguCV学习——简单使用
关于EmguCV我就不多说了,是对应于OpenCV的一套net库. 公司是视觉方面的业务,我又不会c++(好想会啊,正在学习中).由于各种需求,自己觉得对c++不是特别感冒,所以选用了net下的ope ...
- 常用的PC/SC接口函数
PC/SC规范是一个基于WINDOWS平台的一个标准用户接口(API),提供了一个从个人电脑(Personal Computer)到智能卡(SmartCard)的整合环境,PC/SC规范建立在工业标准 ...
- 九度oj 1348 数组中的逆序对
原题链接:http://ac.jobdu.com/problem.php?pid=1348 归并排序求逆序对... #include<algorithm> #include<iost ...
- CPU制造工艺 级选来决定cpu等级
CPU制造工艺 编辑 CPU制造工艺又叫做CPU制程,它的先进与否决定了CPU的性能优劣.CPU的制造是一项极为复杂的过程,当今世上只有少数几家厂商具备研发和生产CPU的能力.CPU的发展史也可以看作 ...
- HTML5简略介绍
今天要说下 HTML5特有的一个元素 canvas ,旨在让web页面上作矢量图不需要在依靠flash或是其他插件,在网页上使用canvas元素时,它会创建一块矩形区域,默认300*150,当然也是可 ...
- Entity Framework 插入数据出现重复插入(导航属性硬是要查再一遍???????)
问题: Artist artmodel = new Artist(); artmodel.user = uinfo; _artiests.Add(artmodel); 新增一条Artist记录,但是同 ...
- shell 函数
1 shell函数的定义及其调用 shell函数有两种格式: function name { commands } name() { commands } 其中,name为函数名,commands为函 ...
- Java实现Internet地址获取
Java实现Internet地址获取 代码内容 输入域名输出IPV4地址 输入IP地址输出域名 支持命令行输入 支持交互式输入 代码实现 /* nslookup.java */ import java ...
- JAVA数据结构-----栈
栈是Vector的一个子类,它实现了一个标准的后进先出的栈. 堆栈只定义了默认构造函数,用来创建一个空栈. 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法. 栈常用的五个方法: bo ...
- java 参数化类型
package com.gxf.collection; import java.util.LinkedList; public class TestForT<T> { private Li ...