传送门

一页书的书

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 53            测试通过 : 10 

题目描述

一页书前辈作为一位得道高僧,在他无悔的生涯中创作了许多经典,被世人称作百世经纶。这一天有m个粉丝来膜拜书大,书大很开心,决定送他们每人一本经典。已知一页书一共创作了n部作品,每部作品分别有a1、a2…an份藏本,那么书大一共可以有多少种送书的选择呢?(由于计算结果可能很大,请把结果对1000000007取模)

输入

第一行是一个正整数T表示有T组数据

每组数据第一行是两个正整数n,m(n,m<=20)

第二行是n个正整数ai(ai<=20)

输出

一个正整数k表示方法的总数对1000000007(10^9+7)取模的结果

样例输入

2

2 3
2 2

2 3
3 3

样例输出

6

8

题目来源

LY:D

题解:

剧透的田神!!!!!!!   dp+组合数。

 dp[i][j]表示前i个人用了j种书

dp[i][j+1] = sigma (  c(i,x) * dp[i - x][j] )

Accepted
0MS
  216K
1443Byte
2015-03-28 16:57:56.0
 #include <cstdio>
#include <cstring>
#include <stack>
#include <vector>
#include <map>
#include <algorithm>
#include <queue> #define ll long long
int const N = ;
int const M = ;
int const inf = ;
ll const mod = ; using namespace std; int n,m;
int a[N];
ll dp[N][N];
ll c[N][N];
int T; void ini1()
{
memset(c,,sizeof(c));
int i,j;
for(i=;i<=;i++){
c[i][]=;
}
for(i=;i<=;i++){
for(j=;j<=;j++){
c[i][j] = (c[i-][j-]+c[i-][j])%mod;
}
}
/*
for(i=1;i<=10;i++){
for(j=0;j<=i;j++){
printf(" i=%d j=%d c=%I64d\n",i,j,c[i][j]);
}
}*/
} void ini()
{
scanf("%d%d",&n,&m);
memset(dp,,sizeof(dp));
int i;
for(i=;i<=n;i++){
scanf("%d",&a[i]);
}
dp[][]=;
} void solve()
{
int i,j,k;
for(j=;j<=n;j++){
for(i=;i<=m;i++){
for(k=;k<=min(a[j],i);k++){
dp[i][j] = (dp[i][j] + c[i][k] * dp[i-k][j-]) %mod;
}
}
}
} void out()
{
printf("%I64d\n",dp[m][n]);
} int main()
{
ini1();
//freopen("data.in","r",stdin);
// freopen("data.out","w",stdout);
scanf("%d",&T);
for(int cnt=;cnt<=T;cnt++)
//while(T--)
//while(scanf("%d%d",&n,&m)!=EOF)
{
ini();
solve();
out();
}
}

noj 2033 一页书的书 [ dp + 组合数 ]的更多相关文章

  1. WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件

    原文:WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件 版权声明:本文为博主原创文章,需要转载尽管转载. https://blog.csdn.net/z ...

  2. 【区间dp+组合数+数学期望】Expression

    https://www.bnuoj.com/v3/contest_show.php?cid=9148#problem/I [题意] 给定n个操作数和n-1个操作符,组成一个数学式子.每次可以选择两个相 ...

  3. luoguP1281 书的复制 DP,贪心

    luoguP1281 书的复制 链接 https://www.luogu.org/problemnew/show/P1281 思路 简单dp,输出方案. 很明显dp记录路径对不对? 恭喜你死了. 求出 ...

  4. UVa 12186 工人的请愿书(树形DP)

    https://vjudge.net/problem/UVA-12186 题意: 一个老板和n个员工组成树状结构,每个员工都有自己的唯一上司,老板的编号为0,员工1~n,工人们打算签署一个志愿书给老板 ...

  5. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码

    Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android Srt和Ass字幕解析器 Material Design ViewPage ...

  6. <自动化测试方案书>方案书目录排版

    自动化测试方案书 一.介绍 QQ交流群:585499566 这篇是一个系列,用来给需要做自动化测试方案的人做个参考,文章的内容是我收集网上和自己工作经验所得,希望能够给你们有所帮助 背景:因为工作需要 ...

  7. [CSP-S模拟测试]:长寿花(DP+组合数)

    题目描述 庭院里有一棵古树.圣诞节到了,我想给古树做点装饰,给他一个惊喜.他会不会喜欢呢?这棵树可以分为$n$层,第$i$层有$a_i$个防治装饰品的位置,有$m$种颜色的装饰品可供选择.为了能让他喜 ...

  8. hdu 3944 DP? 组合数取模(Lucas定理+预处理+帕斯卡公式优化)

    DP? Problem Description Figure 1 shows the Yang Hui Triangle. We number the row from top to bottom 0 ...

  9. Contest 20140708 testB dp 组合数

    testB 输入文件: testB.in  输出文件testB.out 时限3000ms 问题描述: 定义这样一个序列(a1,b1),(a2,b2),…,(ak,bk)如果这个序列是方序列的话必须满足 ...

随机推荐

  1. XML验证

    合法的XML和形式良好的XML ? 拥有正确语法的 XML 被称为"形式良好"的 XML. 第一行是 XML 声明.它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8 ...

  2. Android模板制作

    本文详细介绍模板相关的知识和如何制作Android模版及使用,便于较少不必要的重复性工作.比如我在工作中如果要创建一个新的模块,就不要需要创建MVP相关的几个类:Model.View.Presente ...

  3. Android Learning Note -- AsyncTask浅尝

    AsyncTask 实现原理 AsyncTask是Android提供的轻量级异步类,可以直接继承AsyncTask在类中实现异步操作,并提供接口反馈当前的异步执行程度(通过接口实现UI进度更新),最后 ...

  4. Oracle体系结构总览

    第一篇 Oracle架构总览 先让我们来看一张图   这张就是Oracle 9i的架构全图.看上去,很繁杂.是的,是这样的.现在让我们来梳理一下: 一.数据库.表空间.数据文件 1.数据库 数据库是数 ...

  5. JDK 5 ~ 11 新特性倾情整理

    为了大家对JDK有一个全面的了解,下面我为大家整理了JDK5~11的所有关键新特性! 先看一下JDK的版本迭代图: 注:   OpenJDK和JDK区别  GPL协议通用性公开许可证(General ...

  6. JavaSE-02 变量 数据类型和运算符

    学习要点 掌握变量的概念 掌握常用数据类型 掌握赋值运算符.算术运算符 掌握boolean数据类型和关系运算符 掌握变量的概念 面向过程程序的定义 程序的定义:程序=数据+算法+文档 程序要操作的数据 ...

  7. web中的$多种意思

    $符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的1.首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asdasd ...

  8. mysql中ibatis的limit动态传参

    param.put("pageNo",pageNo);   param.put("pageSize",pageSize); sqlMap中的用法 limit $ ...

  9. POJ-2442-Sequence(二叉堆)

    POJ-2442 Description Given m sequences, each contains n non-negative integer. Now we may select one ...

  10. Centos7中yum安装jdk及配置环境变量

    系统版本 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) #安装之前先查看一下有无系统 ...