Fruit

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3514    Accepted Submission(s): 1998

Problem Description
转眼到了收获的季节,由于有TT的专业指导,Lele获得了大丰收。特别是水果,Lele一共种了N种水果,有苹果,梨子,香蕉,西瓜……不但味道好吃,样子更是好看。

于是,很多人们慕名而来,找Lele买水果。

甚至连大名鼎鼎的HDU ACM总教头 lcy 也来了。lcy抛出一打百元大钞,"我要买由M个水果组成的水果拼盘,不过我有个小小的要求,对于每种水果,个数上我有限制,既不能少于某个特定值,也不能大于某个特定值。而且我不要两份一样的拼盘。你随意搭配,你能组出多少种不同的方案,我就买多少份!"

现在就请你帮帮Lele,帮他算一算到底能够卖出多少份水果拼盘给lcy了。

注意,水果是以个为基本单位,不能够再分。对于两种方案,如果各种水果的数目都相同,则认为这两种方案是相同的。

最终Lele拿了这笔钱,又可以继续他的学业了~

 
Input
本题目包含多组测试,请处理到文件结束(EOF)。
每组测试第一行包括两个正整数N和M(含义见题目描述,0<N,M<=100)
接下来有N行水果的信息,每行两个整数A,B(0<=A<=B<=100),表示至少要买该水果A个,至多只能买该水果B个。
 
Output
对于每组测试,在一行里输出总共能够卖的方案数。
题目数据保证这个答案小于10^9
 
Sample Input
2 3
1 2
1 2
3 5
0 3
0 3
0 3
 
Sample Output
2
12

dp[i][j]表示用前i种水果弄到j个水果的组合数

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <stack>
#include <algorithm>
using namespace std;
#define root 1,n,1
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define lr rt<<1
#define rr rt<<1|1
typedef long long LL;
typedef pair<int,int>pii;
#define X first
#define Y second
const int oo = 1e9+;
const double PI = acos(-1.0);
const double eps = 1e- ;
const int N = ;
const int mod = 1e9+;
LL dp[N][N];
int n , m , a[N] , b[N] ;
void init() {
memset( dp , , sizeof dp );
dp[][] = ;
for( int i = ; i <= n ; ++i ) {
for( int j = ; j <= m ; ++j ){
for( int k = a[i] ; k <= b[i] ; ++k ){
if( j < k ) continue ;
dp[i][j] += dp[i-][j-k];
}
}
}
}
void Run() {
for( int i = ; i <= n ; ++i ){
cin >> a[i] >> b[i] ;
}
init(); cout << dp[n][m] << endl ;
}
int main()
{
//freopen("in.txt","r",stdin);
ios::sync_with_stdio(false);
while( cin >> n >> m ) Run();
}

HDU 2152 Fruit( DP )的更多相关文章

  1. HDU 2152 Fruit

    系数为1的母函数…… #include <cstdio> #include <cstring> using namespace std; int n,m,size[105][2 ...

  2. HDU 2152 Fruit (母函数)

    # include<stdio.h> # include <algorithm> # include <string.h> # include <iostre ...

  3. Fruit HDU - 2152 -上下界生成函数

    HDU - 2152 思路 :有上下界的生成函数 .生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具.生成函数有普通型生成函数和指数型生成函数两种, 其中普通型用的比较多.形式上说,普 ...

  4. hdu 4123 树形DP+RMQ

    http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...

  5. hdu 4507 数位dp(求和,求平方和)

    http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...

  6. hdu 3709 数字dp(小思)

    http://acm.hdu.edu.cn/showproblem.php?pid=3709 Problem Description A balanced number is a non-negati ...

  7. hdu 4352 数位dp + 状态压缩

    XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. hdu 4283 区间dp

    You Are the One Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  9. HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化

    HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...

随机推荐

  1. navicat连接Oracle数据库提示错误 ORA-12514

    这个是服务名写错了,服务名的字段在Oracle安装路径里找 这个我的服务名,这好像是重装Oracle就会变我之前的事orcl,重装之后发现连接不上数据库了,就倔强着找到了它 备注:如果是连接远程Ora ...

  2. smbpasswd - Samba加密的口令文件。

    总览 SYNOPSIS smbpasswd 描述 DESCRIPTION 此文件是 Samba(7) 套件的一部分. smbpasswd是Samba加密的口令文件.文件中包含了用户名,UNIX用户ID ...

  3. 二、jquery Try{}catch(e){}

    一.Try{}catch(e){} try{ $.each($("div"),function(i,item){ if(...){ throw("异常信息"); ...

  4. U盘装CENTOS操作系统

    一.制作U盘系统镜像 1).用UltralISO软件打开下载好的ISO文件镜像,“文件”-“打开”,选中下载好的ISO镜像 2)点击“启动”-“写入硬盘镜像”,选中需要写入的U盘(容量最少为8G),点 ...

  5. hdu1257最少拦截系统 贪心

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽 然它的第 ...

  6. mysql的锁

    前言 mysql锁的概念参考如下连接: 1.http://blog.csdn.net/u013063153/article/details/53432468 2.http://www.yesky.co ...

  7. 【LeetCode】一种博弈思路 minimax(共5题)

    [292] Nim Game (2019年3月12日,E) 有一堆石头,游戏规则是每次可以从里面拿1-3颗石头,拿到最后的石头的人赢.你和你的对手都 optimal 的玩这个游戏,问先手(也就是你)能 ...

  8. 21.使用LinkedBlockingQueue模拟生产者与消费者

    import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import java.util.co ...

  9. IntelliJ IDEA 代码调式

    Mute Breakpoints: 保留所有断点,但是不执行(程序一次性执行). Condition: 条件触发 即当执行到i的值变为5的时候,在断点处暂停.

  10. Linux进程管理工具vmstat,iostat,pmap

    一查看内存的工具——vmstat (一)vmstat的介绍 vmstat vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写 利用vmstat命令可以对操作系统的报 ...