zoukankan      html  css  js  c++  java
  • bzoj3400[Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队

    Description

        农夫顿因开始玩飞盘之后,约翰也打算让奶牛们享受飞盘的乐趣.他要组建一只奶牛飞盘
    队.他的N(1≤N≤2000)只奶牛,每只部有一个飞盘水准指数Ri(1≤Ri≤100000).约翰要选出1只或多于1只奶牛来参加他的飞盘队.由于约翰的幸运数字是F(1≤F≤1000),他希望所有奶牛的飞盘水准指数之和是幸运数字的倍数.
        帮约翰算算一共有多少种组队方式.

    Input

        第1行输入N和F,之后N行输入Ri.

    Output

     
        组队方式数模10^8取余的结果.

    Sample Input

    4 5
    1
    2
    8
    2

    Sample Output

    3

    HINT

        组队方式有(2,3),(3,4),(1,2,4)共三种

    dp……没什么好说的

    f[i][j]表示前i头牛水准和对幸运数字取模为j的方案数

    f[i][j]=f[i-1][j]+f[i][j-p]

    后面有可能爆范围,所以要处理一下

    #include <stdio.h>
    #define mod 100000000 
    int f[2001][1001];
    int n,m;
    inline int read()
    {
        int x=0;char ch=getchar();
        while(ch<'0'||ch>'9')ch=getchar();
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x;
    }
    int main()
    {
    n=read();
    m=read();
        for(int i=1;i<=n;i++)
    {
            int p=read();
            f[i][p%m]=1;
            for(int j=0;j<m;j++)
    {
                f[i][j] =(f[i][j]+f[i-1][j])%mod;
                f[i][(j+p)%m]=(f[i][(j+p)%m]+f[i-1][j])%mod;
            }    
        }
        printf("%d
    ", f[n][0]);
    }
    

      

    ——by zhber,转载请注明来源
  • 相关阅读:
    MVC设置默认页面
    MySQL_DBA整理
    解决git提交敏感信息(回退git版本库到某一个commit)
    并发数计算
    高并发下的 Nginx 优化与负载均衡
    PassengerNginxdebian快速部署Rails
    Linux+postfix+extmail+dovecot打造基于web页面的邮件系统
    2018.11.30软件更新公告
    2018.10.11软件更新公告
    2018.09.25软件更新公告
  • 原文地址:https://www.cnblogs.com/zhber/p/4036097.html
Copyright © 2011-2022 走看看