全排列(传统&&黑科技)
2024-08-25 08:30:38
近期几次考试的一些题目暴力分都有用到全排列。
全排列是个好东西啊...
回想一下,我们最开始学到全排列是什么时候呢?
大概是学搜索的时候罢...
一、传统搜索算法
想复习可以戳 https://www.luogu.org/problemnew/show/P1706
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<iomanip>
using namespace std;
int num=,a[]={},n,r;
bool b[]={};
int search(int);
int print();
int main(){
cin>>n;
search();
cout<<num<<endl;
system("pause");
return ;
}
int search(int k)//k是找第几位数
{ for(int i=;i<=n;i++)
if(!b[i])
{ a[k]=i;
b[i]=;
if(k==n)print();
else search(k+);
b[i]=;}
}
int print()
{ num++;
for(int i=;i<=n;i++)
cout<<a[i];
cout<<endl;
}
二、利用万能的STL<algorithm>模板库
一个函数:next_permutation()
代码就是:
#include<algorithm>
#include<cstdio>
using namespace std;
int a[]={,,,,,,};
int n;
int main()
{
scanf("%d",&n);
do{
for(int i=;i<n;i++)
{
printf("%d\0",a[i]);
}
printf("\n");
}while(next_permutation(a,a+n));
return ;
}
最新文章
- Python学习第一弹——Python环境搭建
- GJM : Unity3D 常用网络框架与实战解析 【笔记】
- vs合并压缩css,js插件——Bundler &; Minifier
- mybatis配置文件(其中,注意节点先后顺序)
- JS算法总结
- 将内表通过TXT文本输出
- SQL Server 中 RAISERROR 的用法
- hdu 4715 Difference Between Primes(素数筛选+树状数组哈希剪枝)
- 关闭MyEclipse的Quick Update
- 自己定制Linux发行版(资料)
- Android 不通过parent实现样式继承
- java 图片 批量 压缩 +所有压缩
- thunk技术
- NancyFx 2.0的开源框架的使用-Forms
- 浅入深出Vue:前言
- WINDOWS SERVER 2016 IE使用FLASH PLAYER的方法
- scapy基础之一 ----简单命令
- java总结:字符串切割
- Linux基础实操二
- 12.16 Daily Scrum