STL之全排列函数poj1716

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

int main(){

    //freopen("input.txt","r",stdin);

    int a[5],tag=0;
    while(scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3])){
        if(a[0]==0 && a[1]==0 && a[2]==0 && a[3]==0)
            break;
        if(tag)
            printf("\n");
        tag=1;
        int flag=1,tmp;
        do{
            if(a[0]==0)
                continue;
            if(flag){
                printf("%d%d%d%d",a[0],a[1],a[2],a[3]);
                flag=0;
            }else if(tmp==a[0])
                printf(" %d%d%d%d",a[0],a[1],a[2],a[3]);
            else
                printf("\n%d%d%d%d",a[0],a[1],a[2],a[3]);
            tmp=a[0];
        }while(next_permutation(a,a+4));
        printf("\n");
    }
    return 0;
}
时间: 2024-12-29 23:57:33

STL之全排列函数poj1716的相关文章

STL的fmt函数

由于EL表达式的运算结果是浮点数时(而且EL表达式的除运算结果也是浮点数,这和其他语言还有点不一样),在网页上显示一长串确实不雅.使用JSTL的fmt标签,可以实现对数字.货币.时间--的格式化显示. 首先在页面前导入该标签库 <%@ taglib uri=""http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 数字格式化(value部分可为EL表达式): 1.<fmt:formatNumb

c++ STL unique , unique_copy函数

一.unique函数 类属性算法unique的作用是从输入序列中"删除"全部相邻的反复元素. 该算法删除相邻的反复元素.然后又一次排列输入范围内的元素,而且返回一个迭代器(容器的长度没变,仅仅是元素顺序改变了),表示无反复的值范围得结束. // sort words alphabetically so we can find the duplicates sort(words.begin(), words.end()); /* eliminate duplicate words: *

SGI STL的 power 函数之个人理解

SGI STL的power函数用于计算某数的n次方 例如求 x的n次幂 n = 20 (20 二进制 10100) 1 0 1 0 0 20 = 2^4 + 2^2 x^20 = x^((2^4) + (2^2)) = x^( 2^4 ) * x ^( 2^2) part2 part1 template <class _Tp, class _Integer, class _MonoidOperation> _Tp __power(_Tp __x, _Integer __n, _MonoidOp

STL区间成员函数及区间算法总结

STL区间成员函数及区间算法总结 在这里总结下可替代循环的区间成员函数和区间算法: 相比单元素遍历操作,使用区间成员函数的优势在于: 1)更少的函数调用 2)更少的元素移动 3)更少的内存分配 在区间成员函数不适用的情况下也应该使用区间算法,至少,相比手写循环而言,它更加简单,有效,并且不容易出错: 区间成员函数 区间构造 标准容器都支持区间构造函数: container::container(InputIterator begin, // 区间的起点 InputIterator end); /

C++ STL的sort 函数 以及自定义的比较函数

没什么特别擅长的内容,先做个小笔记好了.在编程时,使用C++的标准模板库(STL)能节约工作量,增加代码的可读性,能灵活运用无疑会提高编程的效率,俗话说:Write less, create more ~ 然后这篇笔记就简单讨论一下sort函数吧.对于vector,我们使用algorithm头文件中的sort函数来排序元素,如果元素类型是实数.字符串之类的,直接使用sort 函数就可以方便的排序了.使用方法就是: #include <vector> #include <algorithm

3.2 STL中的函数对象类模板

*: STL中有一些函数对象类模板,如下所示: 1)例如要求两个double类型的x 和y 的积,可以: multiplies<double>()(x,y); 该表达式的值就是x*y的值. 2)less是STL中最常用的函数对象类模板,其定义如下: template<class _Tp> struct less { bool oprator()(const _Tp&_x,const _Tp&_y)const { return _c<_y; } } 要判断两个i

使用STL库sort函数对vector进行排序

使用STL库sort函数对vector进行排序,vector的内容为对象的指针,而不是对象. 代码如下 1 #include <stdio.h> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 class Elm 8 { 9 public: 10 int m_iSortProof; 11 12 private: 13 int __m_iValue; 14 static int

STL : map函数的运用 --- hdu 4941 : Magical Forest

Magical Forest Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 724    Accepted Submission(s): 343 Problem Description There is a forest can be seen as N * M grid. In this forest, there is so

STL之sort函数的使用方法

说明:本文仅供学习交流,转载请标明出处,欢迎转载! STL封装了一个排序算法,该算法对应的头文件为#include<algorithm>,我们可以根据需要对一个数组进行排序或者降序. sort的函数原型为: void sort(b,e,pre=up),表示对[b,e)的元素进行排序,第三个参数为一个谓词,我们可以自定义排序方式,默认排序方式为升序排序. 具体实现代码如下: #include<iostream> #include<vector> #include<i