排列&组合
排列:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3 +5;
#define swap(a,b){int temp = a ; a = b ; b = temp;}
int data[maxn];
void so(){
for(int i = 0 ; i <= maxn ; i++){
data[i]=i+1;
}
}
void perm(int begin , int end,int &num){
if(begin == end){
for(int i = 0 ; i <= end ; i++){
cout<<data[i]<<" ";
}
num++;
cout<<endl;
}
else
for(int i = begin ; i <=end ; i++){
swap(data[begin],data[i]);
perm(begin + 1 , end,num);
swap(data[begin],data[i]);
}
}
int main(){
so();
int n;
cin>>n;
int num = 0;
perm(0,n-1,num);
cout<<num;
return 0;
}
组合:
#include<bits/stdc++.h>
using namespace std;
const int maxn =1e5 +5;
int data[maxn];
int flag = 1;
int ans[maxn];
int cnt=0;
int n , m ;
int j = 1;
void f(int n,int m,int flag,int &sum){
if(flag == m+1){
for(int i = 0 ; i <= n ; i++){
if(ans[i]!=0){
cout<<ans[i]<<" ";
}
}
sum++;
cout<<endl;
}
else{
for(int i = j; i <= n ; i++){
if(data[i]!=0){
ans[i]=i;
j = i;
data[i]=0;
f(n,m,flag+1,sum);
ans[i]=0;
data[i]=i;
}
}
}
}
void so(){
for(int i = 0 ; i <= n ; i++)
data[i]=i;
}
int main()
{
int sum=0;
cin>>n>>m;
so();
f(n,m,flag,sum);
cout<<sum;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具