zoukankan      html  css  js  c++  java
  • I.点进来吧,这里有你想要的(01背包)

    Description

    住在云塘校区真是太可怜了,荒郊野外,方圆一公里都没有好吃的,一般都要地铁出去

    唯一幸运的是,西门中信和东门去德思勤还是有好东西吃的,比如汉堡王,金村漫漫暑训和寒假回家的时候根本就吃不到 QAQ

    汉堡王长这样:1.png 支持正版,盗版都不好吃,盗版茶颜难喝同理

    汉堡王有很多好吃的小食,最好吃的当然是超大一根的薯霸王 2.png香脆可口的王道椒香鸡腿3.png 和王道川蜀鸡翅4.png 和鲜嫩的霸王鸡条5.png

    当然最好吃的还是汉堡,皇堡有一层的两层的三层的,不过最好吃的还是安格斯厚牛堡(强推金沙安格斯厚牛堡可惜现在没了orz

    1.png2.png3.png4.png

    QAQorz一回到长沙就直奔汉堡王,已知小食的美味度是11,汉堡的美味度是mm,QAQorz一共能吃nn美味度的东西,请问QAQorz吃一次汉堡王有几种不同的搭配方案?

    关于方案:如果两个方案吃汉堡和小食的先后顺序不同,则称这两种方案是不同的

    具体来说:假设一份小食用一个11表示,一个汉堡用mm个00表示。当m=2m=2时,先吃一份小食再吃一个汉堡再吃一份小食,方案表示为10011001,两个方案不同当且仅当两个0101串是不同的。

    Input

    第一行一个数tt,表示t(1leq tleq15)t(1≤t≤15)组数据。接下来tt行,每行两个数表示nn和mm,1leq n leq 2e51≤n≤2e5, 1leq m leq 101≤m≤10

    Output

    方案数,输出答案对100000007(1e8+7)取模.

    Sample Input 1

    2
    2 2
    4 2
    Sample Output 1

    2
    5
    Hint

    样例解释:

    5种方案分别为:

    吃4份小食,表示为1111

    先吃一个汉堡再吃2份小食,表示为0011

    先吃一份小食再吃一个汉堡再吃一份小食,表示为1001

    先吃两份小食再吃一个汉堡,表示为1100

    吃两个汉堡,表示为0000

    所以方案数为5

    Source

    2019年集训队选拔赛

    思路:基础dp题

    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    const int maxn = 2e5 + 10;
    #define MOD 100000007
    #define ll long long
    
    ll dp[maxn];
    
    int main(int argc, char *argv[]) 
    {
    	ll T;
    	ll n,m;
    	scanf("%lld",&T);
    	while(T--)
    	{
    		scanf("%lld%lld",&n,&m);
    		
    		for(ll i = 0;i<maxn;i++)
    		{
    			dp[i] = 1;
    		}
    		
    		
    		for(ll j = m;j<=n;j++)
    		{
    			dp[j] = dp[j - 1]%MOD + dp[j - m]%MOD;
    		}
    		
    		printf("%lld
    ",dp[n]%MOD);	
    		
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    delphi ios grid BindSourceDB bug
    RAD 10 C++Builder的bug
    Delphi Berlin 窗体代码分离风格 回到Delphi7传统风格
    delphi const的用法
    mysql的sql优化
    mysql如何使用索引index提升查询效率?
    移动端mobiscroll无法滑动、无法划动选值的问题
    html css的内联样式 内部样式表 外部样式表的优先级
    jfinal如何获取参数为数组的值
    jquery如何让checkbox如何取消勾选
  • 原文地址:https://www.cnblogs.com/tomjobs/p/10617589.html
Copyright © 2011-2022 走看看