Heim Web-Frontend HTML-Tutorial 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
Nach dem Login kopieren

Output

655
Nach dem Login kopieren

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;}
    Nach dem Login kopieren


    ??

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Was bedeutet rund in PHP? Was bedeutet rund in PHP? Mar 10, 2023 am 10:04 AM

    In PHP bedeutet „runden“ „Rundung“ und ist eine integrierte Funktion, die Gleitkommazahlen in Ganzzahlen umwandelt. Diese Funktion kann Gleitkommazahlen runden und einen ganzzahligen Wert vom Typ „float“ zurückgeben );".

    So dividieren und runden Sie mit der PHP-Funktion „round()'. So dividieren und runden Sie mit der PHP-Funktion „round()'. Mar 21, 2023 pm 04:32 PM

    Die Funktion „round()“ ist eine sehr nützliche Funktion in der PHP-Bibliothek zur Zahlenformatierung, die Gleitkommazahlen auf eine angegebene Anzahl von Dezimalstellen runden kann. Da die Divisionsoperation von PHP jedoch unter unendlichen Dezimalzahlen oder einem Genauigkeitsverlust leiden kann, ist auch eine Rundung des Divisors erforderlich. Als nächstes erklären wir im Detail, wie man die PHP-Funktion „round()“ zum Teilen und Runden verwendet.

    Entdecken Sie Datenbereinigungs- und Vorverarbeitungstechniken mit Pandas Entdecken Sie Datenbereinigungs- und Vorverarbeitungstechniken mit Pandas Jan 13, 2024 pm 12:49 PM

    Diskussion über Methoden zur Datenbereinigung und -vorverarbeitung mithilfe von Pandas. Einführung: Bei der Datenanalyse und dem maschinellen Lernen sind Datenbereinigung und -vorverarbeitung sehr wichtige Schritte. Als leistungsstarke Datenverarbeitungsbibliothek in Python verfügt Pandas über umfangreiche Funktionen und flexible Operationen, die uns dabei helfen können, Daten effizient zu bereinigen und vorzuverarbeiten. In diesem Artikel werden mehrere häufig verwendete Pandas-Methoden untersucht und entsprechende Codebeispiele bereitgestellt. 1. Daten lesen Zuerst müssen wir die Datendatei lesen. Pandas bietet viele Funktionen

    In Java implementierte Datenbereinigungs- und Vorverarbeitungstechnologie In Java implementierte Datenbereinigungs- und Vorverarbeitungstechnologie Jun 18, 2023 pm 01:45 PM

    Mit der Popularität und Nutzung von Daten haben auch Fragen der Datenqualität zunehmend an Bedeutung gewonnen. Datenbereinigung und -vorverarbeitung sind eine der Schlüsseltechnologien zur Verbesserung der Datenqualität. Die mit Java implementierte Datenbereinigungs- und Vorverarbeitungstechnologie kann die Datenqualität effektiv verbessern und die Ergebnisse der Datenanalyse genauer und zuverlässiger machen. 1. Datenbereinigungstechnologie Die Datenbereinigung bezieht sich auf Verarbeitungsfehler, unvollständige, doppelte oder ungültige Daten in den Daten, um eine bessere anschließende Datenanalyse und -gewinnung durchzuführen. Java bietet eine Fülle von Tools und Bibliotheken, die uns bei der Implementierung von Daten helfen können

    So verwenden Sie die ROUND-Funktion, um Dezimalstellen in MySQL abzufangen So verwenden Sie die ROUND-Funktion, um Dezimalstellen in MySQL abzufangen Jul 13, 2023 pm 09:21 PM

    So verwenden Sie die ROUND-Funktion in MySQL, um die Anzahl der Dezimalstellen abzufangen. In MySQL können Sie die ROUND-Funktion verwenden, um die Anzahl der Dezimalstellen abzufangen. Die ROUND-Funktion rundet eine Zahl auf eine angegebene Anzahl von Dezimalstellen. Im Folgenden werden Sie ausführlich in die Verwendung der ROUND-Funktion eingeführt und Codebeispiele bereitgestellt. Syntax: ROUND(X,D)X steht für die zu rundende Zahl und D für die Anzahl der beizubehaltenden Dezimalstellen. Beispiel für die Verwendung der ROUND-Funktion zum Abfangen der Anzahl der Dezimalstellen: Angenommen, es gibt eine Tabelle mit dem Namen produc

    Wie kann man SQL-Injection in PHP vermeiden? Wie kann man SQL-Injection in PHP vermeiden? Jun 30, 2023 am 09:57 AM

    Wie gehe ich mit SQL-Injection-Problemen in PHP um? In den letzten Jahren ist mit der rasanten Entwicklung des Internets die Zahl der Websites und Anwendungen weiter gestiegen, und eine der gängigen Entwicklungssprachen ist PHP. Allerdings wirft die Verwendung von PHP auch einige Sicherheitsprobleme auf, darunter die SQL-Injection. Bei SQL-Injection-Angriffen erstellen Hacker böswillige SQL-Anweisungen, um Daten in der Datenbank abzurufen, zu ändern oder zu zerstören. Um die Sicherheit von Websites und Anwendungen zu schützen, müssen Entwickler einige Maßnahmen ergreifen, um das Auftreten von SQL-Injection-Schwachstellen zu verhindern. Zuerst entwickeln

    Verwendung von PHP zur Implementierung von Datenbereinigungs- und Vorverarbeitungsfunktionen Verwendung von PHP zur Implementierung von Datenbereinigungs- und Vorverarbeitungsfunktionen Sep 05, 2023 pm 12:52 PM

    So implementieren Sie mit PHP Datenbereinigungs- und Vorverarbeitungsfunktionen. Bei der Entwicklung einer Website oder Anwendung ist die Datenbereinigung und Vorverarbeitung eine der häufigsten Aufgaben. Ihr Zweck besteht darin, sicherzustellen, dass die eingegebenen Daten bestimmten Standards entsprechen und die erforderliche Verarbeitung durchlaufen, bevor sie gespeichert oder verwendet werden. PHP ist eine beliebte serverseitige Programmiersprache, die eine Reihe von Funktionen und Tools zur Implementierung von Datenbereinigungs- und Vorverarbeitungsfunktionen bereitstellt. In diesem Artikel wird ausführlich erläutert, wie die Datenbereinigung und -vorverarbeitung in PHP implementiert wird. Datenbereinigung Unter Datenbereinigung versteht man die Bereinigung der Eingabedaten

    Was sind Makros in der Programmiersprache C? Was sind Makros in der Programmiersprache C? Sep 05, 2023 am 11:29 AM

    Die Makrosubstitution ist ein Mechanismus, der das Ersetzen von Zeichenfolgen ermöglicht. Dies kann durch „#define“ erreicht werden. Es wird verwendet, um den ersten Teil einer Makrodefinition durch den zweiten Teil zu ersetzen, bevor das Programm ausgeführt wird. Das erste Objekt kann ein Funktionstyp oder ein Objekt sein. Die Syntax des Syntaxmakros lautet wie folgt: #definefirst_partsecond_part program Im Programm wird jedes Mal, wenn first_part erscheint, es durch second_part ersetzt. Online-Demonstration #include<stdio.h>#definesquare(a)a*aintmain(){intb,c;printf("

    See all articles