题目挺水的,但由于其独特的阅读量比赛的时候没发现这道水题,在此做一下翻译,如果有人搜到这翻译的话有帮助的话自然最好啦。

中国队平局进入最后的点球决胜局,首先抛硬币决定谁先罚球,然后先是罚五球,如果罚的过程发现某一方不可能再胜出了,那么就不需要再踢下去。假如踢完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(概率)的更多相关文章

  1. Kick the ball!(dfs)湖南省赛第十届

    Problem K: Kick the ball! Time Limit: 1 Sec  Memory Limit: 128 MB  Special Judge Submit: 109  Solved ...

  2. PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)

    主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...

  3. 机器学习入门-概率阈值的逻辑回归对准确度和召回率的影响 lr.predict_proba(获得预测样本的概率值)

    1.lr.predict_proba(under_text_x)  获得的是正负的概率值 在sklearn逻辑回归的计算过程中,使用的是大于0.5的是正值,小于0.5的是负值,我们使用使用不同的概率结 ...

  4. Wasserstein GAN最新进展:从weight clipping到gradient penalty,更加先进的Lipschitz限制手法

    前段时间,Wasserstein GAN以其精巧的理论分析.简单至极的算法实现.出色的实验效果,在GAN研究圈内掀起了一阵热潮(对WGAN不熟悉的读者,可以参考我之前写的介绍文章:令人拍案叫绝的Was ...

  5. [bzoj2152][聪聪和可可] (点分治+概率)

    Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好 ...

  6. sqlserver中根据表中的配置概率取到数据

      create proc pr_zhanglei_test1 /*功能描述: 根据t_zhanglei_test1中perc设置的概率,取到相应数据old_id */ as declare @per ...

  7. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

  8. 【BZOJ-3270】博物馆 高斯消元 + 概率期望

    3270: 博物馆 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 292  Solved: 158[Submit][Status][Discuss] ...

  9. UVA1637Double Patience(概率 + 记忆化搜索)

    训练指南P327 题意:36张牌分成9堆, 每堆4张牌.每次拿走某两堆顶部的牌,但需要点数相同.如果出现多种拿法则等概率的随机拿. 如果最后拿完所有的牌则游戏成功,求成功的概率. 开个9维数组表示每一 ...

随机推荐

  1. Moses更改权重的命令变化 -d -t -

    -l  可以用: weight-l 或者lm  (不需要在前面加-)   还是用-weight-overwrite “Distortion0= 0"更保险 reording weight i ...

  2. C扩展 从共享内存shm到memcache外部内存

    引言 - ipc - shm 共享内存 本文会通过案例了解ipc 的共享内存机制使用, 后面会讲解C 如何使用外部内存服务memcached. 好先开始了解 linux 共享内存机制. 推荐先参看下面 ...

  3. golang初试:坑爷的

    用Golang与perl脚本比较, 初想至多差一倍吧...结果可不是一般的坑爹, 简直就是坑爷了. Perl脚本 #!/bin/bash source /etc/profile; function e ...

  4. 使用Git和远程代码库

    git是个了不起但却复杂的源代码管理系统.它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作.让我们诚实一记吧:Git是复杂的,我们不要装作它不是.但我仍然会试图教会你用(我的)基本 ...

  5. 利用python scrapy 框架抓取豆瓣小组数据

    因为最近在找房子在豆瓣小组-上海租房上找,发现搜索困难,于是想利用爬虫将数据抓取. 顺便熟悉一下Python. 这边有scrapy 入门教程出处:http://www.cnblogs.com/txw1 ...

  6. iOS9新系统下APP Store 应用上传新指南

    一 iTunes Connect介绍 iTunes Connect是面向iOS应用开发人员的苹果门户网站,供开发人员管理其应用,跟踪下载情况.今年1月份闹得沸沸扬扬的iTunes Connect BU ...

  7. 代码实现native2assci

    public static void main(String[] args) { String unicode = ""; String s="用户名"; ch ...

  8. 格式化输出[part1/标准控制符]

    /* 设置输出字符的宽度 width(int)是iostream类的成员函数,可以通过cout对象来调用,即cout.width(int) 注: 1.width(int)只影响将要显示的一个对象,之后 ...

  9. 站立会议 ~NO.1

    Yesterday:None Today: Search for offline maps of our school and testify the veracities of it Problem ...

  10. LineNumberReader类

    开发人员常常会随手写一些类来读入一个简单的配置文件,或者用BufferedReader一行一行地读入特定格式的数据.这些随手写成的解析器往 往会提供基本的出错报告,但有时候它们会很难记录下出错的行号. ...