每日一题Day4
题解:
还是太年轻了QAQ不知道这个OEIS
是啥....
先手推一下前5项:
然后放进OEIS里就有了这么一个公式:
注意最后我们的要写成
#define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) #include<bits/stdc++.h> #define ll long long #define INF 0x3f3f3f3f #define inf -0x3f3f3f3f #define me(a,b) memset(a,b,sizeof(a)) #define PII pair<int,int> #define ull unsigned long long #define ios std :: ios :: sync_with_stdio(false) #define rep(i,a,b) for(int i = a;i <= b;i ++) #define esp 1e-16 using namespace std; const int maxn = 2e5 + 19; ll n, m; ll dp[maxn] = {}; void init() { dp[1] = 0; dp[2] = 1; dp[3] = 1; } int main() { while (cin >> n >> m) { init(); for (ll i = 4ll; i <= n; i++) dp[i] = ((i - 1) * dp[i - 1] + (i - 1) * dp[i - 2] - (i - 1) * (i - 2) / 2 * dp[i - 3]) % m; cout << (dp[n] + m) % m << endl; } return 0; }