竞赛
考级
AC君
法兰西玫瑰
回来看看
又是一道深搜题,刚看第一眼,怎么感觉和A7989.全排列问题那么像呢? 是的,这两题的区别就在输出格式和输入上,真的很像。 把代码套上—— 好,我们看到setw( )这个函数。 它是干嘛的呢?我们科普一下——setw( )函数主要用于控制输出的宽度,即设置输出字段的宽度。 setw( )的使用注意事项 好,这题就这么解,可以把A7989.全排列问题也做一下。
Sleepy~yo
#include <bits/stdc++.h> using namespace std; int n,r,a[25],k=1; bool vis[25]; void dfs(int t){ if(t>r){ for(int i=1;i<=r;i++) cout<<" "<<a[i]; cout<<endl; return; } for(int i=1;i<=n;i++){ if(!vis[i]&&a[t-1]<i){ vis[i]=true; a[t]=i; dfs(t+1); vis[i]=false; } } } int main(){ cin>>n>>r; dfs(1); return 0; }
Voldemort
飞的智动
#include<bits/stdc++.h> using namespace std; int n,r,a[21]; bool vis[21]; void dfs(int sum){ if(sum>r){ for(int i=1;i<=r;i++){ cout<<" "<<a[i]; } cout<<endl; return ; } for(int i=a[sum-1]+1;i<=n;i++){ if(!vis[i]){ vis[i]=1; a[sum]=i; dfs(sum+1); vis[i]=0; } } } int main() { cin>>n>>r; dfs(1); return 0; }
™
准
哒烧叶
重生之我是菜狗
(狱出)༺ཌༀ猫条一ༀད༻
****#include <iostream> using namespace std; const int MAX_N = 25; int n, r, arr[MAX_N], k = 1; bool visited[MAX_N]; void dfs(int idx) { if (idx > r) { for (int i = 1; i <= r; i++) cout << " " << arr[i]; cout << endl; return; } for (int i = 1; i <= n; i++) { if (!visited[i] && arr[idx - 1] < i) { visited[i] = true; arr[idx] = i; dfs(idx + 1); visited[i] = false; } } } int main() { cin >> n >> r; dfs(1); return 0; } ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 链接描述
茉莉与你
注意输出格式是先输出空格再输出数字。
毛奕程
提交答案之后,这里将显示提交结果~