caioj1271&&poj3071: 概率期望值2:足球
见到网上的大佬们都用了位运算。。表示看不懂就自己想了,还挺好想的(然而我不会告诉你我因为p的数组问题卡了半小时顺便D了ZZZ大佬的数据)
DP方程(伪)就是:第t轮第i个队晋级的可能=第t-1轮第i个队晋级的可能*第t-1轮第(枚举所有可以在这轮和我对战的队)队晋级的可能*战胜他的可能
所以说该怎么枚举可以在这轮和我对战的队?我们仔细研究淘汰对战表(图丑勿喷)
这里u表示在这一轮,在当前这个组里是第几个队。然后就会发现,单数组和双数组(当t=2时,3、4处于一个双数组)他要对战的队伍是不一样的,所以要分情况讨论。单数组要往下找队对战,双数组就反之。
#include<cstdio>
#include<cstring>
using namespace std;
double p[][],f[][];
int main()
{int N,n;
while(scanf("%d",&N)!=EOF)
{
if(N==-)break; n=;for(int i=;i<=N;i++)n*=;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%lf",&p[i][j]); memset(f,,sizeof(f));
for(int i=;i<=n;i++)f[][i]=1.0;
int ln=;
for(int t=;t<=N;t++)
{
int u=,z=;
for(int i=;i<=n;i++)
{
u++;if(u==ln+){u=;z=-z;}
if(z==)
{
int end=i-u+ln;
for(int j=end+;j<=end+ln;j++)
f[t][i]+=f[t-][i]*f[t-][j]*p[i][j];
}
else
{
int str=i-u+;
for(int j=str-;j>=str-ln;j--)
f[t][i]+=f[t-][i]*f[t-][j]*p[i][j];
}
}
ln*=;
} int ans=;
double mmax=;
for(int i=;i<=n;i++)
if(f[N][i]>mmax)
{
mmax=f[N][i];
ans=i;
}
printf("%d\n",ans);
}
return ;
}
caioj1271&&poj3071: 概率期望值2:足球的更多相关文章
- caioj1275&&hdu4035: 概率期望值6:迷宫
期望的大难题,%%ZZZ大佬的解释,不得不说这是一道好题(然而膜题解都没完全看懂,然后就去烦ZZZ大佬) 简单补充几句吧,tmp的理解是个难点,除以tmp的原因是,当我们化简时,子节点也有一个B*f[ ...
- caioj1270: 概率期望值1:小象涂色
DP深似海,得其得天下.——题记 叕叕叕叕叕叕叕叕叕叕叕(第∞次学DP内容)被D飞了,真的被DP(pa)了.这次D我的是大叫着第二题比较难(小象涂色傻b题)的Mocha(zzz)大佬,表示搞个概率DP ...
- caioj1272&&codeforces 148D: 概率期望值3:抓老鼠
这道真的是好题,不卡精度,不卡细节,但是思考的方式很巧妙! 一开始大家跟我想的应该差不多,用f[i][j]表示有i只白老鼠,j只黑老鼠的胜率,然后跑DP,然后我就发现,这样怎么做?还有一种不胜不负的平 ...
- [转]机器学习——C4.5 决策树算法学习
1. 算法背景介绍 分类树(决策树)是一种十分常用的分类方法.它是一种监管学习,所谓监管学习说白了很简单,就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分 ...
- 基于skip-gram做推荐系统的想法
一.人工智能之自然语言处理 自然语言处理(Natural Language Processing, NLP),是人工智能的分支科学,意图是使计算机具备处理人类语言的能力. “处理人类语言的能力”要达到 ...
- 决策树的剪枝,分类回归树CART
决策树的剪枝 决策树为什么要剪枝?原因就是避免决策树“过拟合”样本.前面的算法生成的决策树非常的详细而庞大,每个属性都被详细地加以考虑,决策树的树叶节点所覆盖的训练样本都是“纯”的.因此用这个决策树来 ...
- poj3071 Football(概率dp)
poj3071 Football 题意:有2^n支球队比赛,每次和相邻的球队踢,两两淘汰,给定任意两支球队相互踢赢的概率,求最后哪只球队最可能夺冠. 我们可以十分显然(大雾)地列出转移方程(设$f[ ...
- POJ3071:Football(概率DP)
Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2 ...
- POJ3071 Football 概率DP 简单
http://poj.org/problem?id=3071 题意:有2^n个队伍,给出每两个队伍之间的胜率,进行每轮淘汰数为队伍数/2的淘汰赛(每次比赛都是相邻两个队伍进行),问哪只队伍成为冠军概率 ...
随机推荐
- Struts2的线程安全性
[什么是线程安全性?] 在多线程并发访问的情况下,如果一个对象中的变量的值不会随访问的线程而变化则是线程安全的.反之则称为非线程安全的. [Servlet是线程安全的吗?] [非线程安全的] publ ...
- Java学习之正则表达式
Java正则表达式字符串模式. 正则表达式可以用来搜索.编辑和处理文本. 正则表达式不尽限于一种语言,但在每一种语言中又细微的差别. java.util.regex包中主要有这3个类: Pattern ...
- luogu4093 [HEOI2016/TJOI2016]序列
因为一个变化只会变化一个值,所以 \(dp[i]=max(dp[j])+1,j<i,maxval_j \leq a[i], a[j] \leq minval_i\) 发现跟二维数点问题挺像,树状 ...
- 【转】玩玩负载均衡---在window与linux下配置nginx
最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar.不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,sq ...
- 什么是Etcd?
文章大部分引至:http://jolestar.com/etcd-architecture/ Etcd 按照官方介绍 Etcd is a distributed, consistent key-val ...
- bzoj 2818 GCD 数论 欧拉函数
bzoj[2818]Gcd Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Samp ...
- [NOIP2001] 提高组 洛谷P1026 统计单词个数
题目描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保 证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的 ...
- Reactor和Proactor模式的讲解(关于异步,同步,阻塞与非阻塞)
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...
- canvas仿芝麻信用分仪表盘
这是一个仿支付宝芝麻信用分的一个canvas,其实就是一个动画仪表盘. 首先, 上原图: 这个是在下支付宝上的截图,分低各位见笑了.然后看下我用canvas实现的效果图: <canvas id= ...
- Callable线程
写一个Callable线程 import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; im ...