zoukankan      html  css  js  c++  java
  • 【[Offer收割]编程练习赛9 D】 矩阵填数

    【题目链接】:http://hihocoder.com/problemset/problem/1480

    【题意】

    【题解】

    这是一道杨氏矩阵的题;
    一个固定形状的杨氏矩阵的种类个数;
    等于这个杨氏矩阵的元素个数->设为n;
    然后对于每一个元素的下标i,j
    则总的个数为
    n!/(所有元素下标i+j-1的乘积) 这里的i+j-1就对应了i,j上面的元素和左边的元素的总个数;
    当做结论记吧。
    涉及到了除法取模;
    要写个乘法逆元;

    【Number Of WA

    1

    【完整代码】

    #include <bits/stdc++.h>
    using namespace std;
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    #define rep1(i,a,b) for (int i = a;i <= b;i++)
    #define rep2(i,a,b) for (int i = a;i >= b;i--)
    #define mp make_pair
    #define pb push_back
    #define fi first
    #define se second
    #define ms(x,y) memset(x,y,sizeof x)
    
    typedef pair<int,int> pii;
    typedef pair<LL,LL> pll;
    
    const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
    const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
    const double pi = acos(-1.0);
    const LL MOD = 1e9+7;
    
    int n,m;
    LL ans = 1;
    
    LL ksm(LL x,LL y)
    {
        if (y==1) return x;
        LL temp = ksm(x,y>>1);
        temp = (temp*temp)%MOD;
        if (y&1) temp = (temp*x)%MOD;
        return temp;
    }
    
    int main()
    {
        //freopen("F:\rush.txt","r",stdin);
        ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
        cin >> n >> m;
        rep1(i,1,n*m) ans = (ans*i)%MOD;
        rep1(i,1,n)
            rep1(j,1,m)
                ans=(ans*ksm(i+j-1,MOD-2))%MOD;
        cout << ans << endl;
        return 0;
    }
    
  • 相关阅读:
    当Django模型迁移时,报No migrations to apply 问题时
    django--各个文件的含义
    django--创建项目
    1013. Battle Over Cities (25)
    1011. World Cup Betting (20)
    1009. Product of Polynomials (25)
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
    1008. Elevator (20)
    1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626390.html
Copyright © 2011-2022 走看看