- 吐吐很快乐
RP怎么赚???
- 2025-5-3 9:42:09 @
欢迎各位大神来这里讨论,发题解
速发解
欢迎各位大神来这里讨论,发题解
1 条评论
-
董章正 LV 6 @ 2025-5-25 15:01:19
#include<bits/stdc++.h> using namespace std; int a[100], book[10], n, ans = 0; void dfs(int place) { for(int i = 1; i <= n; ++i) { if(book[i] == 0) { //数字i没放入 a[place] = i; //把i放入第place个盒子 book[i] = 1; //标记 dfs(place + 1); //递归下一个盒子 book[i] = 0; //取消标记 } } if(place == n + 1) {//到达最后一个盒子的下一个 ans++; //总共的可能 for(int i = 1; i <= n; ++i) cout<<a[i]<<" "; cout<<endl; return; //返回上一个盒子(最近一次调用dfs的地方) //return可去 } } int main() { cin>>n; dfs(1); //从第一个盒子开始 cout<<ans<<endl; return 0; }
- 1