不容易系列之一 (错排公式)
题目链接
题解:
错排公式:d[n] = (n-1)(d[n-1] + d[n-2]);
最近在看组合数学,还没有看到这一部分,只能先搬过来用了。
#include <stdio.h> #include <cstring> #include <cmath> #include <iostream> #include <queue> #include <map> #include <list> #include <utility> #include <set> #include <algorithm> #include <deque> #include <iomanip> #include <vector> #define mem(arr, num) memset(arr, 0, sizeof(arr)) #define _for(i, a, b) for (int i = a; i <= b; i++) #define __for(i, a, b) for (int i = a; i >= b; i--) #define IO \ ios::sync_with_stdio(false); \ cin.tie(0); \ cout.tie(0); using namespace std; typedef long long ll; typedef vector<int> vi; const ll INF = 0x3f3f3f3f; const int mod = 1e9 + 7; const int N = 20 + 5; ll d[N]; int main() { d[2] = 1; _for(i, 3, N-1) d[i] = (i-1) *(d[i-1] + d[i-2]); int n; while(cin >> n) cout << d[n] << endl; return 0; }
宝剑锋从磨砺出 梅花香自苦寒来
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步