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

    3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队

    Time Limit: 3 Sec  Memory Limit: 128 MB
    Submit: 129  Solved: 84
    [Submit][Status][Discuss]

    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)共三种

    Source

    Silver

    题解:一开始还在想着怎么DFS剪枝= =。。。感觉自己水水哒

    其实就是一个水水的DP就完事啦,记得最后要-1(你总不能一个都不要然后还要算一种方法吧)

     1 /**************************************************************
     2     Problem: 3400
     3     User: HansBug
     4     Language: Pascal
     5     Result: Accepted
     6     Time:260 ms
     7     Memory:23704 kb
     8 ****************************************************************/
     9  
    10 const p=100000000;
    11 var
    12    i,j,k,l,m,n:longint;
    13    b:array[0..5000] of longint;
    14    a:array[0..3000,0..2000] of longint;
    15 begin
    16      readln(n,m);
    17      for i:=1 to n do readln(b[i]);
    18      for i:=1 to n do b[i]:=b[i] mod m;
    19      fillchar(a,sizeof(a),0);
    20      a[0,0]:=1;
    21      for i:=1 to n do
    22          for j:=0 to m do
    23              a[i,j]:=(a[i-1,(j-b[i]+m) mod m]+a[i-1,j]) mod p;
    24      writeln(a[n,0]-1);
    25      readln;
    26 end.   
  • 相关阅读:
    6-5-1
    static的作用
    第五小题:北京某高校。。。。
    机票预订系统问题定义及可行性分析
    银行储蓄系统问题定义及可行性分析
    软件工程和计算机科学的区别
    中文编码--中国程序员之”银弹“?
    开博第一日
    【转载】大牛很通俗地介绍《信号与系统》
    matlab绘图简单笔记
  • 原文地址:https://www.cnblogs.com/HansBug/p/4418755.html
Copyright © 2011-2022 走看看