zoukankan      html  css  js  c++  java
  • 刷题总结——table(ssoi)

    题目:

    题目背景

    SOURCE:NOIP2016-RZZ-2 T2

    题目描述

    给定一个 n×m 的矩阵,行列均从 1 开始标号。

    一个矩阵被认为是稳定的,当且仅当对于任意的 2≤i≤n,第 i 行的数的和不小于第 i−1 行的数的和,且最后一行的数的和小于等于 m ,并且要求矩阵中所有的元素都是非负的。

    求所有 n×m 的稳定矩阵的方案数,答案对 109 取模。

    输入格式

    第一行一个整数 T ,表示数据组数。
    每组数据一行两个整数 n,m 。

    输出格式

    输出 T 行,每行一个整数,表示方案数。

    样例数据 1

    输入  [复制]

     

    1 1 
    2 2 
    2 3

    输出


    25 
    273

    备注

    【数据规模与约定】
    对于 30% 的数据,n,m≤3。
    对于 60% 的数据,n,m≤50。
    对于 100% 的数据,1≤n,m≤2000;1≤T≤10。

    题解:

      两个dp加前缀和,注意前缀和的求法


    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<ctime>
    #include<cctype>
    #include<cstring>
    #include<string>
    #include<algorithm>
    using namespace std;
    const int mod=1e9;
    const int N=2005;
    long long dp[N][N];
    long long f[N][N];
    inline void pre()
    {
      for(int i=1;i<=2000;i++)
      {  
        dp[0][i]=1; 
        f[i][0]=1;
      }
      for(int i=1;i<=2000;i++)
        for(int j=1;j<=2000;j++)
          dp[i][j]=(dp[i-1][j]+dp[i][j-1])%mod;    
    }
    int T,m,n;
    int main()
    {
      //freopen("table.in","r",stdin);
     // freopen("table.out","w",stdout);
      pre();
      scanf("%d",&T);
      for(int t=1;t<=T;t++)
      {
        long long ans=0; 
        long long sum=0;
        scanf("%d%d",&n,&m);
           for(int i=0;i<=m;i++)
        {  
          f[1][i]=dp[i][m];
          f[i][1]=dp[1][m]+1;
        }
        for(int i=2;i<=n;i++)  
        {  
          for(int k=1;k<=m;k++)
          {
            f[i][k]=f[i-1][k]*dp[k][m]%mod;
            f[i][k]=(f[i][k]+f[i][k-1])%mod;
          }
        }
        cout<<f[n][m]<<endl;
      }
      return 0;
    }
  • 相关阅读:
    James 3.1服务器的安装与搭建
    Mybaits整合Spring
    动态sql
    Mybatis核心配置文件SqlMapConfig.xml
    Mapper动态代理方式
    WPF DatePicker
    UITableView(修改单元格)
    UITableView
    UIImageView
    UILabel
  • 原文地址:https://www.cnblogs.com/AseanA/p/7212234.html
Copyright © 2011-2022 走看看