题目大意及模型转换:
有两个队伍踢足球,每队N人从1~N。一开始0队1号发球。进一球得一分。结束条件是比赛M秒过后,或某一个队得到Q分后。每一秒控球的i队j号队员都有可能发生以下情况。1、传球给对应集合的己方球员。2、被对应集合的敌方球员截球。3、射门。射门之后球交给敌方1号球员。每个人射门都有一定几率中。输出每种比分的概率。
分析:
设f[i,j,k,l]表示i队开球j时刻的时候,比分为k:l的概率。
设g[i,j,k]表示i队开球k时刻后j队得分的概率。
f[1-t,j+x,k+tmp1,l+tmp2]=∑f[i,j,k,l]*g[i,t,x]
tmp1和tmp2为0或1,表示某一方进球。
设h[i,j,k,l]表示i队开球l时刻后球在j队k号球员脚中的概率。
设p[i,j]表示i队j号球员射门进球的概率。
g[i,j,x+1]=∑h[i,j,k,x]*p[j,k]*tmp【k=1~N】
其中tmp表示i队j号球员选择射门的概率。
h[i,t,x,y+1]=∑h[i,j,k,y]*tmp
tmp为传球或被截球的概率。
其中要注意,射门失败可以视为被对方1号球员截球。
那么h[i,t,1,y+1]=∑h[i,j,k,y]*tmp*(1-p[j,k])
tmp为选择射门的概率。
由于还有m时刻后结束比赛,所以还要设delay[i,j]表示i队开球过了j时刻一直没进球的概率。
delay[i,j]=∑h[i,x,y,j]
那么用ans[i,j]表示比分为i:j的概率
ans[i,j]=∑f[t,k,i,j,]*delay[t,m-k]
注意:
此题极其猥琐,一次不AC都不知道怎么调了。。。