- #include<bits/stdc++.h>
- using namespace std;
- long long DP[21][121] = {0};
- long long f(int n, int m)
- {
- if(n > m || n * 6 < m )
- return 0;
- if(n == 1)
- return 1;
- if(DP[n][m])
- return DP[n][m];
- return DP[n][m] = f(n-1, m-6) + f(n-1, m-5) + f(n-1, m-4) + f(n-1, m-3) + f(n-1, m-2) + f(n - 1, m - 1);
- }
- int main()
- {
- int k;
- cin>>k;
- for(int i=0; i<k; i++)
- {
- int n, m;
- cin >> n >> m;
- cout<<f(n, m)<<endl;
- }
- return 0;
- }
複製代碼 |