一开始以为是和 配对 一样的dp 然后就发现了各种梗。
然后老老实实从头开始。设dp[i][j]为前前i对有j组女比男高
然后发现我们得让男女都是有序的才能继续进行。
转移肯定是从dp[i-1][j-1] 和dp[i-1][j]得来的。
然后分girl[i]>boy[i] 和boy[i]>girl[i] 分类讨论
这题只给核心代码(LZ调了很久啊,数据良心啊,怎么会让你们这么简单过此题,其实核心代码已经很良心)
if(g[i]>b[i])
{
if(j>0&&s[i]+i-j>0)
f[i][j]=f[i][j]+(f[i-1][j-1]*(s[i]+i-j));
if(j-s[i]+1>0)
f[i][j]=f[i][j]+(f[i-1][j]*(j-s[i]+1));
}
else
{
if( j>0 && i-j-t[i]+1>0)
f[i][j]=f[i][j]+(f[i-1][j-1]*(i-j-t[i]+1));
if(j+t[i]>0)
f[i][j]=f[i][j]+(f[i-1][j]*(j+t[i]));
}