排列2

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8608    Accepted Submission(s): 3180

Problem Description
Ray又对数字的列产生了兴趣:
现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。

Input

每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如果四张卡片都是0,则输入结束。

Output

对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。
每组输出数据间空一行,最后一组数据后面没有空行。

Sample Input

1 2 3 4 1 1 2 3 0 1 2 3 0 0 0 0

Sample Output

1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241 3412 3421 4123 4132 4213 4231 4312 43211123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 32111023 1032 1203 1230 1302 1320 2013 2031 2103 2130 2301 2310 3012 3021 3102 3120 3201 3210

Source

2007省赛集训队练习赛(2)

问题链接:HDU1716 排列2

问题简述:参见上文。

问题分析:这个问题明显用全排列来解决,然而输出格式控制是关键。

程序说明:(略)

题记:(略)

参考链接:(略)

AC的C++语言程序如下:

/* HDU1716 排列2 */#include <iostream>
#include <algorithm>
#include <stdio.h>const int N = 4;
int a[N];using namespace std;int main()
{bool flag;flag = false;while(scanf("%d%d%d%d", &a[0], &a[1], &a[2], &a[3]) != EOF) {if(a[0] == 0 && a[1] == 0 && a[2] == 0 && a[3] == 0)break;if(flag)printf("\n");flag = true;int lasta0 = -1;bool flag2 = true;do {if(a[0] == 0)continue;if(flag2)flag2 = false;else if(a[0] == lasta0)printf(" ");elseprintf("\n");printf("%d%d%d%d", a[0], a[1], a[2], a[3]);lasta0 = a[0];} while(next_permutation(a, a + N));printf("\n");}return 0;
}

HDU1716 排列2【全排列+输出格式】相关推荐

  1. 【组合数学】排列组合 ( 多重集排列 | 多重集全排列 | 多重集非全排列 所有元素重复度大于排列数 | 多重集非全排列 某些元素重复度小于排列数 )

    文章目录 一.多重集 二.多重集全排列 三.多重集全排列示例 三.多重集非全排列 1 所有元素重复度大于排列数 ( ni≥rn_i \geq rni​≥r ) 四.多重集非全排列 2 某些元素重复度小 ...

  2. 剑指Offer - 面试题38. 字符串的排列(全排列,排序,回溯+剪枝)

    1. 题目 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" 输出:["ab ...

  3. 全排列及相关扩展算法(二)——求字典序下一组排列及全排列算法

    1.字典序排列的定义:为了便于理解,以数字为例,对于数字1.2.3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的.例如对于5个数字的排列 12354和12345,排 ...

  4. Bailian1833 POJ1833 排列【全排列】

    排列 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 20563   Accepted: 7856 Description 题 ...

  5. 生成排列(全排列)的两种写法

    问题简述:输出任意各自然数(可不连续)所有不重复的排列,即全排列,要求所产生的任一数字序列中不允许出现重复的数字. 解决方法:1.交换法    2.数组访问法,两种方法都是由dfs回溯完成,也可以使用 ...

  6. 康拓排列以及全排列老年人听不懂系列

    以下三个题都是LeetCode题库里面的. 1.给定一个没有重复数字的序列,返回其所有可能的全排列. 示列: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], ...

  7. 回溯算法:排列树(全排列)

    排列树理论: 排列树就是给你个序列,如123,得出他的全排列,如下 123: 132: 213: 231: 321: 312: 整个算法步骤画出来就是一个树形结构,需要我们深度遍历,层向思考.什么意思 ...

  8. hdu1716 排列2(排列生成算法)

     Problem Description Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表 ...

  9. poj 1833 排列 STL 全排列公式

    排列 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 15173   Accepted: 6148 Description 题 ...

最新文章

  1. 招行java开发面试,面经:Java后台开发-招行网络科技
  2. 数据的预处理与特征构建(申请评分卡模型)
  3. 阿里云ECS服务器的搭建
  4. Android APK文件学习调研
  5. Java基础知识——异常Throwable和Exception
  6. 新手学习Java必需要知道的这些基本概念!
  7. 用express、mongodb、nodejs开发简单的登陆
  8. dbms_stats包更新、导出、导入、锁定统计信息
  9. Eclipse安装Alibaba Cloud Toolkit并连接阿里云云数据库
  10. C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
  11. 葡萄城报表介绍:数据钻取
  12. PWM DAC vs. Standalone
  13. 日本东京成田国际机场的第三候机楼
  14. 微信公众平台网页授权两次重定向跳转问题
  15. 计算机linux二级试题,计算机二级考试题及答案
  16. Request method ‘GET‘ not supported 405错误辨析总结
  17. 职场人必备的6款实用办公app,每一款都是心头爱
  18. git 报错fatal: cannot create directory at ‘../../..‘: Permission denied
  19. ngrok转发mysql连接_ngrok内网转发
  20. 01-邂逅Vuejs

热门文章

  1. Go语言中的单元测试及反向代理
  2. cocos2dx之Http网络编程(一)——网络请求的发送和接收
  3. java窗口小程序atm_简单的小程序实现ATM机操作
  4. dao generator for php and mysql_mybatis generator 自动生成dao层映射代码
  5. 【Linux 命令学习第三天】
  6. 计算机应用技术参加文献,面向科技文献的机器翻译(4)-计算机应用技术专业毕业论文.docx...
  7. jmter测试jmeter参数化(必须掌握)
  8. 计算机拆装与维修技能综述,综述虚拟机在计算机硬件组装与维护教学中的应用...
  9. error汇总:dpkg: error processing package *** (--configure)
  10. 浅析error LNK2001: unresolved external symbol public: __thisc...