next_permutation() 全排列函数
next_permutation() 全排列函数
这个函数是STL自带的,用来求出该数组的下一个排列组合
相当之好用,懒人专用
适用于不想自己用dfs写全排列的同学(结尾附上dfs代码)
洛谷oj可去 P1008 三连击
注意:
- 使用前数组需要排序(升序)
- prev_permutation()是求前一个排列组合
- 数组 vector都可以,确定全排列的范围
#include <iostream>
#include <algorithm> //函数所需头文件
using namespace std;
int a[10];
void f(){
int t1,t2,t3;
t1=a[1]*100+a[2]*10+a[3]*1;
t2=a[4]*100+a[5]*10+a[6]*1;
t3=a[7]*100+a[8]*10+a[9]*1;
if(t1*2==t2&&t1*3==t3) cout<<t1<<" "<<t2<<" "<<t3<<endl;
}
int main(){
for(int i=1;i<=9;++i) a[i]=i; //sort
do{
f();
}while(next_permutation(a+1,a+10)); //prev_
return 0;
}
dfs全排列
#include <bits/stdc++.h>
using namespace std;
int a[10];
bool vis[10]={0}; //记录该数字是否被使用过
int n=9;
void dfs(int idx){
if(idx>n){ //边界输出
for(int i=1;i<=n;++i) cout<<a[i];
cout<<endl;
}
for(int i=1;i<=n;++i){
if(!vis[i]){
vis[i]=1;
a[idx]=i;
dfs(idx+1);
vis[i]=0; //回溯
}
}
}
int main(){
cin>>n;
dfs(1);
return 0;
}
next_permutation() 全排列函数的更多相关文章
- STL - next_permutation 全排列函数
学习: http://blog.sina.com.cn/s/blog_9f7ea4390101101u.html http://blog.csdn.net/ac_gibson/article/deta ...
- C++ STL 全排列函数
C++ 全排列函数...一听名字就在<algorithm>中... 首先第一个说的是next_permutation: #include <algorithm> bool n ...
- 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)
Description Corn does not participate the STEED contest, but he is interested in the word "STEE ...
- POJ1833 排列 调用全排列函数 用copy函数节省时间 即使用了ios同步代码scanf还是比较快
排列 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 21268 Accepted: 8049 Description 题 ...
- C++中全排列函数next_permutation用法
最近做了TjuOj上关于全排列的几个题,室友告诉了一个非常好用的函数,谷歌之,整理如下: next_permutation函数 组合数学中经常用到排列,这里介绍一个计算序列全排列的函数:next_pe ...
- C++ 全排列函数 std::next_permutation与std::prev_permutation
C++ STL中提供了std::next_permutation与std::prev_permutation可以获取数字或者是字符的全排列,其中std::next_permutation提供升序.st ...
- 全排列函数(next_permutation)
顾名思义,这个函数就是用来求数组的全排列的,至于怎么用,看下面的介绍: 这是一个c++函数,包含在头文件algorithm里面,这个函数可以从当前的数组的大小按照字典序逐个递增的顺序排列 看下面的模板 ...
- 全排列函数 nyoj 366(next_permutation()函数)
C++ STL中提供了std::next_permutation与std::prev_permutation可以获取数字或者是字符的全排列,其中std::next_permutation提供升序.st ...
- 全排列函数(next_permutation())
平常需要全排列的时候,一般都是dfs然后字符串匹配啥的……今天看题解的时候突然发现了这个神器. next_permutation()函数在c++的algorithm库里,作用是传入一个数组,输出这个数 ...
随机推荐
- jquery result属性 语法
jquery result属性 语法 作用:result 属性包含由被指定事件触发的事件处理器返回的最后一个值,除非这个值未定义.大理石平台精度等级 语法:event.resul 参数: 参数 描述 ...
- ant design 的表格默认选中
在使用 ant design 的表格时候使用默认选中项, 需要配置的 Table 的 rowSelection const rowSelection = { type: 'checkbox', get ...
- select和FD_SET等
转自:http://blog.csdn.net/cstarbl/article/details/7645298 select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供sele ...
- Jmeter(三) 从上传图片来入门Jmeter
用Jmeter上传用户头像到人人网 先用抓包工具Fiddler把上传操作的报文抓取下来 开启Jmeter,在测试计划中创建一个线程组,取名为“图片上传” 再在线程组中创建一个HTTP请求 在请求报文中 ...
- php的if函数
条件语句用于基于不同条件执行不同的动作 PHP 条件语句 在您编写代码时,经常会希望为不同的决定执行不同的动作.您可以在代码中使用条件语句来实现这一点. 在 PHP 中,我们可以使用以下条件语句: i ...
- sqli-labs(5)
双查询注入 0x01爱之初了解 在第一次接触到双查询注入时 肯定会有很多问题 在这里我们先了解一下什么叫做 双查询注入 他的语法结构 以及为什么这样构造 答:在此之前,我们理解一下子查询,查询的关键字 ...
- Kotlin之环境的配置和搭建
第一步 . 安装和配置JDK http://www.cnblogs.com/loaderman/p/6402948.html 第二步 安装和下载Kotlin 进入Kotlin官网 :https :// ...
- 代码实现:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
package com.loaderman.Coding; import java.util.Scanner; /*利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分 ...
- Python中的IndentationError解决
用Python .join拼接SQL的时候遇到一个错误:TypeError: cannot concatenate 'str' and 'dict' objects,检查了一下确认是join了两个类型 ...
- pytest_1安装和启动
一.安装和启动 1.1 安装pytest 1. 键入Ctrl+R,打开cmd,输入命令至python环境下(本机:D:\Python27>) 2. 在python环境下运行下面的命令即可安装py ...