zoukankan      html  css  js  c++  java
  • 2018牛客多校第一场 A.Monotonic Matrix

    题意:

      给一个n*m的矩阵赋值(0,1,2)。使得每个数都不小于它左面和上面的数。

    题解:

      构建0和1的轮廓线。对于单独的轮廓线,共需要往上走n步,往右走m步。有C(n+m,n)种方式。

      两个轮廓线的总情况是C(n+m,n)*C(n+m,n)种方式。但是还要去重掉相交的情况。

      假设将0轮廓线向左上平移一个单位,那么此时两个轮廓线既不能相交也不能重合。

      假设0轮廓线是从A到B,1轮廓线是从C到D。那么相交的情况可以理解成从A到D,从C到B。情况数是C(n+m,n-1)*C(n+m,m-1)

      总答案就是C(n+m,n)*C(n+m,n)-C(n+m,n-1)*C(n+m,m-1)

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 2001;
    const int mod = 1e9+7;
    typedef long long ll;
    int n, m;
    int C[N][N];
    int main() {
        C[1][0] = C[1][1] = 1;  
        for(int i = 2; i < N; i++){  
            C[i][0] = 1;  
            for(int j = 1; j < N; j++)  
            C[i][j] = (C[i-1][j]+C[i-1][j-1])%mod;  
        }  
        while(~scanf("%d%d", &n, &m)) {
            printf("%d
    ", ((1ll*C[n+m][n]*C[n+m][n])%mod-(1ll*C[n+m][n-1]*C[n+m][m-1])%mod+mod)%mod);
        }
    } 
    View Code
  • 相关阅读:
    treeview 的动态的绑定
    数据库组件
    webconfig,form验证存角色
    treeView
    web.config 的读写与配置
    .net 开发精华
    asp.net
    在ASP.NET中实现AJAX
    验证js
    用js将form表单同时提交到两个不同页面的方法
  • 原文地址:https://www.cnblogs.com/Pneuis/p/9340797.html
Copyright © 2011-2022 走看看