TLE in Tilling Problem II

This is the best problem, I can think of, and it is giving TLE.
Need Help

#include
using namespace std;
#define MOD 1000000007

int tilling(int n, int m) {
//base case
if(n==m){
return 2;
}
//recursive case
if(n<m){
return 1;
}

return (tilling(n-1, m)%MOD + tilling(n-m,m)%MOD)%MOD;
}

int main() {
int t;
cin>>t;
while(t–){
int m, n;
cin>>n>>m;
cout<<tilling(n,m)<<endl;
}
}

Since the constraints are large, this problem is actually of dynamic programming and will give time limit exceed error for simple recursive approach. So try with DP.

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.