本文最后更新于 2296 天前,其中的信息可能已经有所发展或是发生改变。
Table of Content
题解
题目可以转化为插板法求解。考虑当$x + y + z <= k$时满足题意,引入一个$a$ 变成了$x + y + z + a = k$然后我们需要求的便是${k+3}\choose{3}$。
注意到题目的数据范围,可以用__int128
解决问题。
AC代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <array>
using ll = long long;
using namespace std;
using lll = __int128;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int T;
cin >> T;
while(T--)
{
ll k,m;
cin >> k >> m;
lll ans = k + 1;
cout << (ll)(ans * (ans + 1) * (ans + 2) / 6 % m) << "\n";
}
}