우리의 목표는 우리가 X-1 소정의 순서로 하나의 코스를 결정할 수 있고, 주문 될 수있는 간격을 L 및 R을 발견하는 하나의 완전한 AC, 즉 DP [I] = (DP) [I-1]; 그것은 단지 이전 단계에서 전송 될 수 있고, 각 단계는 프로세스 두 가지 가능한 최대 X에 행해질 수 있고, 최후로 상태 천이 식 [I] = DP [DP이다 마지막 교류 RJ이며 I-1] + DP는 [IX]는, 우리가 전에 접두사를 사용할 필요가 있으므로, 첨가 알고리즘마다, 타임 아웃의 원인이되며, 우리가 발견 항목을 제공 질문 복수 세트의 도착의 방법의 각 단계의 수를 얻을 수 난 나타낸다 전체 종류의 방법은 내부에 각각의 섹션은 감산 연산을 요청하고, 애플리케이션의 특성 프리픽스 수
다음 코드는
#include <bits/stdc++.h>
using namespace std;
const int MAX=1e9+7;
int f[100008];
int main() {
int k,q,l,r;
cin>>k>>q;
f[0]=1,f[k]=2;
for(int i=1;i<k;i++) f[i]=1;
for(int i=k+1;i<100008;i++) f[i]=(f[i-1]+f[i-k-1])%MAX;
for(int i=1;i<100008;i++) f[i]=(f[i]+f[i-1])%MAX;
while(q--)
{
cin>>l>>r,l--;
printf("%d\n",(f[r]-f[l]+MAX)%MAX);
}
return 0;
}