YTU 2845: 编程题AB-卡片游戏
2845: 编程题AB-卡片游戏
时间限制: 1 Sec 内存限制: 128 MB
提交: 30 解决: 13
题目描述
小明对数字的序列产生了兴趣:
现有许多张不同的数字卡片,用这若干张卡片能排列出很多序列,要求算出这若干张不同卡片的全排列总数,并按从小到大的顺序输出这些序列。
输入
输入数字n,表示输入数字序列个数,接着输入n个不同的数字,代表n张卡片上的数字(0<=数字<=9,1<=n<=6)。
输出
对每组卡片按从小到大的顺序输出所有能由这几张卡片组成的序列,每个序列占一行,序列中数字用空格分隔。
样例输入
3
1 4 2
样例输出
6
1 2 4
1 4 2
2 1 4
2 4 1
4 1 2
4 2 1
你 离 开 了 , 我 的 世 界 里 只 剩 下 雨 。 。 。
#include <stdio.h>
#include <string.h>
int a[12],b[12],c[12],n;
void dfs(int step)
{
int i;
if(step==n+1)
{
for(i=1; i<=n; i++)printf(i!=n?"%d ":"%d\n",a[i]);
return;
}
for(i=1; i<=n; ++i)
if(b[i]==0)
{
a[step]=c[i];
b[i]=1;
dfs(step+1);
b[i]=0;
}
}
void sort(int *a,int n)
{
int i,j,t;
for(i=0; i<n; i++)
for(j=0; j<n-i; j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
int main()
{
scanf("%d",&n);
int sum=1, i;
memset(b,0,sizeof(b));
for(i=1; i<=n; ++i)
{
scanf("%d",a+i);
c[i]=a[i];
}
for(i=n; i>0; i--)sum*=i;
printf("%d\n",sum);
sort(a,n);
sort(c,n);
dfs(1);
return 0;
}
#include <string.h>
int a[12],b[12],c[12],n;
void dfs(int step)
{
int i;
if(step==n+1)
{
for(i=1; i<=n; i++)printf(i!=n?"%d ":"%d\n",a[i]);
return;
}
for(i=1; i<=n; ++i)
if(b[i]==0)
{
a[step]=c[i];
b[i]=1;
dfs(step+1);
b[i]=0;
}
}
void sort(int *a,int n)
{
int i,j,t;
for(i=0; i<n; i++)
for(j=0; j<n-i; j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
int main()
{
scanf("%d",&n);
int sum=1, i;
memset(b,0,sizeof(b));
for(i=1; i<=n; ++i)
{
scanf("%d",a+i);
c[i]=a[i];
}
for(i=n; i>0; i--)sum*=i;
printf("%d\n",sum);
sort(a,n);
sort(c,n);
dfs(1);
return 0;
}
YTU 2845: 编程题AB-卡片游戏的更多相关文章
- YTU 2598: 编程题B-小平智斗自动售货机
2598: 编程题B-小平智斗自动售货机 时间限制: 1 Sec 内存限制: 128 MB 提交: 268 解决: 69 题目描述 LYH自动售货机在销售商品时,具有自动找钱功能.但是找零的最小单 ...
- YTU 2597: 编程题B-选拔飞行员
2597: 编程题B-选拔飞行员 时间限制: 1 Sec 内存限制: 128 MB 提交: 131 解决: 35 题目描述 2100年空军选拔高中生飞行学员基本条件要求如下,年龄范围:16-19周 ...
- YTU 2596: 编程题B-日期格式
2596: 编程题B-日期格式 时间限制: 1 Sec 内存限制: 128 MB 提交: 981 解决: 74 题目描述 注:本题只需要提交编写的函数部分的代码即可. 将输入的日期格式 月/日/年 ...
- YTU 2858: 编程题AB-骨牌铺方格
2858: 编程题AB-骨牌铺方格 时间限制: 1 Sec 内存限制: 128 MB 提交: 87 解决: 23 题目描述 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出 ...
- YTU 2837: 编程题B-狐狸算卦
2837: 编程题B-狐狸算卦 时间限制: 1 Sec 内存限制: 128 MB 提交: 76 解决: 52 题目描述 注:本题只需要提交需要完善部分的代码,请按照C++方式提交. 小熊和狐狸是邻 ...
- YTU 2640: 编程题:运算符重载---矩阵求和
2640: 编程题:运算符重载---矩阵求和 时间限制: 1 Sec 内存限制: 128 MB 提交: 484 解决: 190 题目描述 /* 有两个矩阵a和b,均为2行3列.求两个矩阵之和. 重 ...
- YTU 2795: 编程题AB-侦察员的密码
2795: 编程题AB-侦察员的密码 时间限制: 1 Sec 内存限制: 128 MB 提交: 155 解决: 43 题目描述 侦察员小甲在被捕前在墙上写了两行文字(ASCII字符),其中包含了他 ...
- YTU 2615: AB编程题--世界杯小组赛
2615: AB编程题--世界杯小组赛 时间限制: 1 Sec 内存限制: 128 MB 提交: 100 解决: 35 题目描述 注:本题目自由设计,但必须使用类进行代码设计. 世界杯32支参赛队 ...
- POJ C程序设计进阶 编程题#3 : 排队游戏
编程题#3:排队游戏 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在幼儿 ...
随机推荐
- STM32F407 独立看门狗 个人笔记
什么是看门狗 如果程序跑飞了怎么办? 可以用看门狗来监控. 看门狗是: 一个递减的计数器,如果不按时给计数器赋值,计数器的值减到一定程度,就会使系统复位. 也就是说如果程序运行异常,无法正常给计数器赋 ...
- python3--算法基础:二分查找/折半查找
算法基础:二分查找/折半查找 #!/usr/bin/env python # -*- coding:utf-8 -*- # 算法基础:二分查找/折半查找 def binarySearch(dataSo ...
- php基础 数组 遍历
//参数默认值// function abc($a,$b,$c=0){// echo $a,$b,$c;// }// abc(1,3); //可变参数//function def(){// $arr= ...
- 什么是TLS?
最近在Istio实验中经常遇到HTTP,HTTPS,TLS等名词,感觉忘得差不多,需要复习一下计算机网络的知识了. 本文参考 http://www.techug.com/post/https-ss ...
- POJ 3177 边双连通求连通量度的问题
这道题的总体思路就是找到连通量让它能够看作一个集合,然后找这个集合的度,度数为1的连通量为k,那么需要添加(k+1)/2条边才可以保证边双连通 这里因为一个连通量中low[]大小是相同的,所以我们用a ...
- hdu 3879 最大权闭合图(裸题)
/* 裸的最大权闭合图 解:参见胡波涛的<最小割模型在信息学竞赛中的应用 #include<stdio.h> #include<string.h> #include< ...
- linux下rename用法--批量重命名 转
原文地址:https://www.cnblogs.com/hester/p/5615871.html Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Li ...
- PHP的资源类型
PHP的资源类型 php的资源类型 常见的有:打开文件.数据库连接.图形画布等. 常用操作:创建.使用.释放. 以文件操作为示例: //文件路径 $file_url = './data.txt'; / ...
- oc温习五:字符串
/** substringFromIndex: --从第from位数 开始截取字符串 */ NSString *str = @"asdfghjkzxcbnm"; NSString ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1054
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1054 这个错误困扰了我一个下午 插入数据总是错误 ...