2018 牛客多校第一场A(不知名定理)

题目

题意:一个矩阵由012三个数字组成,这个矩阵从左到右,从上到下,都是不递减的。

思路:

考虑 01 和 12 的分界线
是 (n, 0) 到 (0, m) 的两条不相交(可重合)路径
平移其中一条变成 (n-1, -1) 到 (-1, m-1)
变成起点 (n, 0) 和 (n-1, -1),终点 (0, m) 和 (-1, m-1) 的严格不相交路径 套 Lindström–Gessel–Viennot lemma

答案是Cn+m,n2 -Cn+m,m-1Cn+m,n-1

可以用杨辉三角求组合数

代码:

#include
using namespace std;
#define ll long long
ll dp[2050][2050];
const int ll mod=1e9+7;
void init()
{
    dp[0][1]=dp[1][1]=1;
    for(int i=2;i<=2002;i++)
    {
        dp[0][i]=dp[i][i]=1;
        for(int j=1;j

 

你可能感兴趣的:(2018牛客多校)