zoukankan      html  css  js  c++  java
  • [HDU 4828] Grids

    Grids

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
    Total Submission(s): 562    Accepted Submission(s): 223

    Problem Description
      度度熊最近很喜欢玩游戏。这一天他在纸上画了一个2行N列的长方形格子。他想把1到2N这些数依次放进去,但是为了使格子看起来优美,他想找到使每行每列都递增的方案。不过画了很久,他发现方案数实在是太多了。度度熊想知道,有多少种放数字的方法能满足上面的条件?
     
    Input
      第一行为数据组数T(1<=T<=100000)。
      然后T行,每行为一个数N(1<=N<=1000000)表示长方形的大小。
     
    Output
      对于每组数据,输出符合题意的方案数。由于数字可能非常大,你只需要把最后的结果对1000000007取模即可。
     
    Sample Input
    2 1 3
     
    Sample Output
    Case #1: 1 Case #2: 5
     
    Hint
    对于第二组样例,共5种方案,具体方案为:
     
    Source
    2014年百度之星程序设计大赛 - 初赛(第一轮)
     

    逆元、

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    #define ll long long
    #define N 1000010
    
    int dp[N];
    
    int exgcd(int a,int b,int& x, int& y)
    {
        if(b==0)
        {
            x=1;
            y=0;
            return a;
        }
        int d=exgcd(b,a%b,y,x);
        y-=a/b*x;
        return d;
    }
    int inv(int a,int MOD)
    {
        int x,y;
        exgcd(a,MOD,x,y);
        x=(x%MOD+MOD)%MOD;
        return x;
    }
    void init()
    {
        int MOD=1000000007;
        dp[1]=1;
        dp[2]=2;
        for(int i=3;i<=N-10;i++)
        {
            dp[i]=( (ll)dp[i-1]*(4*i-2)%MOD * (ll)inv(i+1,MOD))%MOD;
        }
    }
    int main()
    {
        init();
        int T,n,iCase=1;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            printf("Case #%d:
    %d
    ",iCase++,dp[n]);
        }
        return 0;
    }
    趁着还有梦想、将AC进行到底~~~by 452181625
  • 相关阅读:
    CAS在tomcat6.0.18下的SSO
    CAS在tomcat6.0.18下的SSO
    PL/SQL 0.几秒出结果,SQL效率一定高吗?
    优化大型复杂SQL
    C++ ProtoBuf小结
    protobuf c++入门
    Oracle_inner join,left join,right join,full join 的区别,用例子说明
    Linux_查看修改SWAP大小
    Oracle 优化器
    Oracle 行转列两种方法
  • 原文地址:https://www.cnblogs.com/hate13/p/4442971.html
Copyright © 2011-2022 走看看