zoukankan      html  css  js  c++  java
  • bzoj:3400 [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为某个余数的就可以啦……
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    
    int n,m,a,f[1000][2],i,j;
    char c;
    int read(){
        a=0;
        c=getchar();
        while(c<'0'||c>'9') c=getchar();
        while(c>='0'&&c<='9') a=a*10+c-48,c=getchar();
    }
    int main(){
        scanf("%d%d",&n,&m);
        f[0][0]=1;
        int l=1,d=0;
        for (i=0;i<n;i++){
            read();
            swap(l,d);
            a%=m;
            for (j=m-1;j>=0;j--) {f[j][d]=f[j][l]+f[j<a?j-a+m:j-a][l];if(f[j][d]>=1e8) f[j][d]-=1e8;}
        }
        printf("%d
    ",f[0][d]-1);
    }
  • 相关阅读:
    python并发编程之IO模型
    协程与concurent.furtrue实现线程池与进程池
    网络编程之线程进阶
    多线程讲解
    网络编程之进阶2
    网络编程之进阶
    网络编程之进程
    函数复习之2
    函数复习
    深克隆和浅克隆
  • 原文地址:https://www.cnblogs.com/Enceladus/p/5020324.html
Copyright © 2011-2022 走看看