首页 web前端 html教程 Codeforces Round #271 (Div. 2) D. Flowers (递推 预处理)_html/css_WEB-ITnose

Codeforces Round #271 (Div. 2) D. Flowers (递推 预处理)_html/css_WEB-ITnose

Jun 24, 2016 am 11:56 AM
round 预处理

We saw the little game Marmot made for Mole's lunch. Now it's Marmot's dinner time and, as we all know, Marmot eats flowers. At every dinner he eats some red and white flowers. Therefore a dinner can be represented as a sequence of several flowers, some of them white and some of them red.

But, for a dinner to be tasty, there is a rule: Marmot wants to eat white flowers only in groups of sizek.

Now Marmot wonders in how many ways he can eat between a and b flowers. As the number of ways could be very large, print it modulo1000000007 (109?+?7).

Input

Input contains several test cases.

The first line contains two integers t andk (1?≤?t,?k?≤?105), wheret represents the number of test cases.

The next t lines contain two integers ai andbi (1?≤?ai?≤?bi?≤?105), describing the i-th test.

Output

Print t lines to the standard output. Thei-th line should contain the number of ways in which Marmot can eat betweenai andbi flowers at dinner modulo1000000007 (109?+?7).

Sample test(s)

Input

3 21 32 34 4
登录后复制

Output

655
登录后复制

Note

  • For K = 2 and length1 Marmot can eat (R).
  • For K = 2 and length2 Marmot can eat (RR) and (WW).
  • For K = 2 and length3 Marmot can eat (RRR), (RWW) and (WWR).
  • For K = 2 and length4 Marmot can eat, for example, (WWWW) or (RWWR), but for example he can't eat (WWWR).

  • 考虑第n个。假如n是小于k的,那么只能都是是R,也就是只有一种情况。假如大于等于k,如果第n个是W,那么从n-k+1到n全部为W,如果第n个是R,那么数量就是前n-1个的数量。

    dp[n] = 1; (0

    dp[n] = dp[n-1] + dp[n-k]; (n >= k)


    #include <stdio.h>#include <string.h>#include <math.h>#include <iostream>#include <queue>#include <algorithm>#include <cmath>#define mem(f) memset(f,0,sizeof(f))#define M 100005#define mod 1000000007#define MAX 0X7FFFFFFF#define maxn 100005#define lson o<<1, l, m#define rson o<<1|1, m+1, rusing namespace std;typedef long long LL;int n = maxn, k, t, a, b, dp[maxn], sum[maxn];int main(){    scanf("%d%d", &t, &k);    for(int i = 0; i < k; i++) dp[i] = 1;    for(int i = k; i < n; i++) dp[i] = (dp[i-1] + dp[i-k])%mod;    for(int i = 1; i < n; i++) sum[i] = (sum[i-1] + dp[i])%mod;    while(t--) {        scanf("%d%d", &a, &b);        printf("%d\n", ((sum[b]-sum[a-1])%mod+mod)%mod );    }    return 0;}
    登录后复制


    ??

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    php中的round是什么意思 php中的round是什么意思 Mar 10, 2023 am 10:04 AM

    在php中,round的意思为“四舍五入”,是一个内置函数,作用是将浮点数转换为整数;该函数可以对浮点数进行四舍五入,并返回一个float类型的整数值,语法“round(number,precision,mode);”。

    如何用PHP的round()函数进行除以四舍五入 如何用PHP的round()函数进行除以四舍五入 Mar 21, 2023 pm 04:32 PM

    round() 函数是PHP数字格式化库中一个非常实用的函数,可以将浮点数四舍五入到指定的小数位数。但是,由于PHP的除法运算可能会出现无限小数或精度丢失的问题,因此对除数进行四舍五入也很必要。接下来,我们会详细讲解如何使用PHP的round()函数进行除以四舍五入。

    通过使用pandas来探讨数据清洗和预处理的技巧 通过使用pandas来探讨数据清洗和预处理的技巧 Jan 13, 2024 pm 12:49 PM

    利用pandas进行数据清洗和预处理的方法探讨引言:在数据分析和机器学习中,数据的清洗和预处理是非常重要的步骤。而pandas作为Python中一个强大的数据处理库,具有丰富的功能和灵活的操作,能够帮助我们高效地进行数据清洗和预处理。本文将探讨几种常用的pandas方法,并提供相应的代码示例。一、数据读取首先,我们需要读取数据文件。pandas提供了许多函数

    使用Java实现的数据清洗和预处理技术 使用Java实现的数据清洗和预处理技术 Jun 18, 2023 pm 01:45 PM

    随着数据的普及和使用,数据的质量问题也日益受到关注。数据清洗和预处理是提高数据质量的关键技术之一。使用Java实现的数据清洗和预处理技术可以有效地提高数据质量,使得数据分析结果更加准确和可靠。一、数据清洗技术数据清洗是指对数据中存在的错误、不完整、重复或者无效的数据进行处理,以便更好地进行后续的数据分析和挖掘。Java提供了丰富的工具和库,可以帮助我们实现数

    MySQL中如何使用ROUND函数截取小数位数 MySQL中如何使用ROUND函数截取小数位数 Jul 13, 2023 pm 09:21 PM

    MySQL中如何使用ROUND函数截取小数位数在MySQL中,可以使用ROUND函数来截取小数的位数。ROUND函数可以把一个数字四舍五入到指定的小数位数。下面将为您详细介绍ROUND函数的使用方法,并提供代码示例。语法:ROUND(X,D)X表示要四舍五入的数字,D表示要保留的小数位数。使用ROUND函数截取小数位数的示例:假设有一个表格名为produc

    PHP避免SQL注入的方法是什么? PHP避免SQL注入的方法是什么? Jun 30, 2023 am 09:57 AM

    如何处理PHP的SQL注入问题?近年来,随着互联网的迅猛发展,网站和应用程序的数量不断增加,其中一种常见的开发语言是PHP。然而,PHP的使用也引发了一些安全问题,其中之一就是SQL注入。SQL注入攻击是指黑客通过构造恶意的SQL语句来获取、修改或破坏数据库中的数据。为了保护网站和应用程序的安全,开发人员需要采取一些措施来防止SQL注入漏洞的出现。首先,开发

    如何使用 PHP 实现数据清理和预处理功能 如何使用 PHP 实现数据清理和预处理功能 Sep 05, 2023 pm 12:52 PM

    如何使用PHP实现数据清理和预处理功能在开发网站或应用程序时,数据清理和预处理是常见的任务之一。它们的目的是确保输入的数据符合特定的标准,并在被存储或使用之前进行必要的处理。PHP是一种流行的服务器端编程语言,它提供了一系列的函数和工具来实现数据清理和预处理的功能。本文将详细讨论如何在PHP中实现数据清理和预处理。数据清理数据清理是指将输入的数据清

    C编程语言中的宏是什么? C编程语言中的宏是什么? Sep 05, 2023 am 11:29 AM

    宏替换是一种提供字符串替换的机制。它可以通过"#define"实现。在程序执行之前,它用于将宏定义的第一部分替换为第二部分。第一个对象可以是函数类型或对象。语法宏的语法如下:#definefirst_partsecond_part程序在程序中,每次出现first_part都会被替换为second_part。 在线演示#include<stdio.h>#definesquare(a)a*aintmain(){intb,c;printf("

    See all articles