Maison interface Web tutoriel 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
Copier après la connexion

Output

655
Copier après la connexion

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;}
    Copier après la connexion


    ??

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Que signifie rond en php Que signifie rond en php Mar 10, 2023 am 10:04 AM

    En PHP, round signifie « arrondi » et est une fonction intégrée qui convertit les nombres à virgule flottante en nombres entiers. Cette fonction peut arrondir les nombres à virgule flottante et renvoyer une valeur entière de type float. La syntaxe est « round (nombre, précision, mode). );".

    Comment diviser et arrondir à l'aide de la fonction round() de PHP Comment diviser et arrondir à l'aide de la fonction round() de PHP Mar 21, 2023 pm 04:32 PM

    La fonction round() est une fonction très utile dans la bibliothèque de formatage de nombres PHP, qui peut arrondir les nombres à virgule flottante à un nombre spécifié de décimales. Cependant, comme l'opération de division de PHP peut souffrir de décimales infinies ou d'une perte de précision, l'arrondi du diviseur est également nécessaire. Ensuite, nous expliquerons en détail comment utiliser la fonction round() de PHP pour diviser et arrondir.

    Explorez les techniques de nettoyage et de prétraitement des données à l'aide de pandas Explorez les techniques de nettoyage et de prétraitement des données à l'aide de pandas Jan 13, 2024 pm 12:49 PM

    Discussion sur les méthodes de nettoyage et de prétraitement des données à l'aide de pandas Introduction : Dans l'analyse des données et l'apprentissage automatique, le nettoyage et le prétraitement des données sont des étapes très importantes. En tant que puissante bibliothèque de traitement de données en Python, pandas possède des fonctions riches et des opérations flexibles, qui peuvent nous aider à nettoyer et prétraiter efficacement les données. Cet article explorera plusieurs méthodes pandas couramment utilisées et fournira des exemples de code correspondants. 1. Lecture des données Tout d'abord, nous devons lire le fichier de données. pandas fournit de nombreuses fonctions

    Technologie de nettoyage et de prétraitement des données implémentée en Java Technologie de nettoyage et de prétraitement des données implémentée en Java Jun 18, 2023 pm 01:45 PM

    Avec la popularité et l’utilisation des données, les problèmes de qualité des données font également l’objet d’une attention croissante. Le nettoyage et le prétraitement des données sont l'une des technologies clés pour améliorer la qualité des données. La technologie de nettoyage et de prétraitement des données mise en œuvre à l'aide de Java peut améliorer efficacement la qualité des données et rendre les résultats de l'analyse des données plus précis et plus fiables. 1. Technologie de nettoyage des données Le nettoyage des données fait référence aux erreurs de traitement, aux données incomplètes, en double ou invalides dans les données, afin de mieux effectuer l'analyse et l'exploration ultérieures des données. Java fournit une multitude d'outils et de bibliothèques qui peuvent nous aider à implémenter des données

    Comment utiliser la fonction ROUND pour intercepter les décimales dans MySQL Comment utiliser la fonction ROUND pour intercepter les décimales dans MySQL Jul 13, 2023 pm 09:21 PM

    Comment utiliser la fonction ROUND dans MySQL pour intercepter le nombre de décimales. Dans MySQL, vous pouvez utiliser la fonction ROUND pour intercepter le nombre de décimales. La fonction ROUND arrondit un nombre à un nombre spécifié de décimales. Ce qui suit vous présentera en détail l’utilisation de la fonction ROUND et fournira des exemples de code. Syntaxe : ROUND(X,D)X représente le nombre à arrondir et D représente le nombre de décimales à conserver. Exemple d'utilisation de la fonction ROUND pour intercepter le nombre de décimales : Supposons qu'il existe une table nommée produc

    Quel est le moyen d'éviter l'injection SQL en PHP ? Quel est le moyen d'éviter l'injection SQL en PHP ? Jun 30, 2023 am 09:57 AM

    Comment gérer les problèmes d’injection SQL en PHP ? Ces dernières années, avec le développement rapide d'Internet, le nombre de sites Web et d'applications n'a cessé d'augmenter, et l'un des langages de développement les plus courants est PHP. Cependant, l’utilisation de PHP soulève également certains problèmes de sécurité, dont l’injection SQL. Les attaques par injection SQL font référence à des pirates informatiques qui construisent des instructions SQL malveillantes pour obtenir, modifier ou détruire des données dans la base de données. Afin de protéger la sécurité des sites Web et des applications, les développeurs doivent prendre certaines mesures pour empêcher l'apparition de vulnérabilités d'injection SQL. Tout d’abord, développer

    Comment utiliser PHP pour implémenter des fonctions de nettoyage et de prétraitement des données Comment utiliser PHP pour implémenter des fonctions de nettoyage et de prétraitement des données Sep 05, 2023 pm 12:52 PM

    Comment utiliser PHP pour implémenter des fonctions de nettoyage et de prétraitement des données Lors du développement d'un site Web ou d'une application, le nettoyage et le prétraitement des données sont l'une des tâches courantes. Leur finalité est de garantir que les données saisies répondent à des normes précises et font l'objet des traitements nécessaires avant d'être stockées ou utilisées. PHP est un langage de programmation côté serveur populaire qui fournit une série de fonctions et d'outils pour implémenter des fonctions de nettoyage et de prétraitement des données. Cet article expliquera en détail comment implémenter le nettoyage et le prétraitement des données en PHP. Nettoyage des données Le nettoyage des données fait référence au nettoyage des données d'entrée

    Que sont les macros en langage de programmation C ? Que sont les macros en langage de programmation C ? Sep 05, 2023 am 11:29 AM

    La substitution de macro est un mécanisme qui permet le remplacement de chaînes. Cela peut être réalisé via "#define". Il est utilisé pour remplacer la première partie d'une définition de macro par la deuxième partie avant l'exécution du programme. Le premier objet peut être un type de fonction ou un objet. La syntaxe de la macro de syntaxe est la suivante : #definefirst_partsecond_part program Dans le programme, à chaque fois que first_part apparaîtra, elle sera remplacée par second_part. Démonstration en ligne #include<stdio.h>#definesquare(a)a*aintmain(){intb,c;printf("

    See all articles