uva-10098
所有的排列,但是要不重复
#include<stdio.h>
#include<iostream>
#include<sstream>
#include<queue>
#include<map>
#include<memory.h>
#include <math.h>
#include<time.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
#define N 12
int vis[N];
char a[N];
char b[N];
int length;
int n;
int final = 0;
void dfs(int cur)
{
if(cur == length)
{
for(int i = 0; i < cur; i++)
cout << b[i];
cout << endl;
return;
}
for(int i = 0; i < length; i++)
{
if(!i || a[i] != a[i - 1])
{
int c1 = 0, c2 = 0;
for(int j = 0; j < cur; j++)
if(b[j] == a[i])
c1++; for(int j = 0; j < length; j++)
if(a[j] == a[i])
c2++;
if(c1 < c2)
{
b[cur] = a[i];
dfs(cur + 1);
}
} }
}
void sort()
{
for(int i = 0; i < length; i++)
{
for(int j = 1; j < length - i; j++)
{
if(a[j] < a[j - 1])
{
char cc = a[j];
a[j] = a[j - 1];
a[j - 1] = cc;
}
}
} }
int main(const int argc, char** argv)
{
freopen("d:\\1.txt", "r", stdin);
cin >> n;
while (n--)
{
memset(a, 0, sizeof(a));
scanf("%s", a);
length = strlen(a);
sort();
dfs(0);
//if(n != 0)
cout << endl;
}
return 0;
}
#include<stdio.h>
#include<iostream>
#include<sstream>
#include<queue>
#include<map>
#include<memory.h>
#include <math.h>
#include<time.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
#define N 12
int vis[N];
char a[N];
char b[N];
int length;
int n;
int final = 0;
void dfs(int cur)
{
if(cur == length)
{
for(int i = 0; i < cur; i++)
cout << b[i];
cout << endl;
return;
}
for(int i = 0; i < length; i++)
{
if(!i || a[i] != a[i - 1])
{
int c1 = 0, c2 = 0;
for(int j = 0; j < cur; j++)
if(b[j] == a[i])
c1++; for(int j = 0; j < length; j++)
if(a[j] == a[i])
c2++;
if(c1 < c2)
{
b[cur] = a[i];
dfs(cur + 1);
}
} }
}
void sort()
{
for(int i = 0; i < length; i++)
{
for(int j = 1; j < length - i; j++)
{
if(a[j] < a[j - 1])
{
char cc = a[j];
a[j] = a[j - 1];
a[j - 1] = cc;
}
}
} }
int main(const int argc, char** argv)
{
freopen("d:\\1.txt", "r", stdin);
cin >> n;
while (n--)
{
memset(a, 0, sizeof(a));
scanf("%s", a);
length = strlen(a);
sort();
do
{
cout << a << endl;
} while (next_permutation(a, a + length));
cout << endl;
}
return 0;
}
想看库函数源码了。。。。。
uva-10098的更多相关文章
- UVA 10098 Generating Fast, Sorted Permutation
// 给你字符串 按字典序输出所有排列// 要是每个字母都不同 可以直接dfs ^_^// 用前面说的生成排列算法 也可以直接 stl next_permutation #include <io ...
- (组合数学3.1.1.2)UVA 10098 Generating Fast(使用字典序思想产生所有序列)
/* * UVA_10098.cpp * * Created on: 2013年10月8日 * Author: Administrator */ #include <iostream> # ...
- UVa 10098: Generating Fast
这道题要求按字典序生成字符串的全排列,不可重复(但字符可以重复,且区分大小写). 基本思路是先对输入的字符串按字典序排序,然后从第一位开始递归,从所有输入的字符中选出一个填充,然后再选第二位..... ...
- UVA - 10098 - Generating Fast (枚举排列)
思路:生成全排列,用next_permutation.注意生成之前先对那个字符数组排序. AC代码: #include <cstdio> #include <cstring> ...
- uva 10098 Generating Fast(全排列)
还是用的两种方法,递归和STL,递归那个是含有反复元素的全排列,这道题我 没有尝试没有反复元素的排列,由于从题目上并没有发现一定是有反复元素的() 贴代码: <span style=" ...
- UVA 10098 用字典序思想生成所有排列组合
题目: Generating permutation has always been an important problem in computer science. In this problem ...
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
随机推荐
- python functools.partial
functools.partial 用一些默认参数包装一个可调用对象,返回结果是可调用对象,并且可以像原始对象一样对待 冻结部分函数位置函数或关键字参数,简化函数,更少更灵活的函数参数调用 refer ...
- vue-meta
vue-meta插件的使用: https://github.com/declandewet/vue-meta
- C语言面试题2
预处理 问题1:什么是预编译?何时需要预编译? 答:预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作.主要处理#开头的指令.如拷贝#include包含的文件代码.替换#def ...
- [Python] 中文路径和中文文本文件乱码问题
情景: Python首先读取名为log.txt的文本文件, 其中包含有文件名相对路径信息filename. 随后Python调用shutil.copy2(src, dst)对该filename文件进行 ...
- yii2 数据库查询
下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...
- jQuery如何取得HiddenField值(转)
<f:HiddenField runat="server" ID="cat_id" Text="ssss"/> var strD ...
- Spring Boot/Spring Cloud、ESB、Dubbo
如何使用Spring Boot/Spring Cloud 实现微服务应用spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现. ...
- JZ2440 裸机驱动 第13章 LCD控制器(2)
13.2 TFT LCD显示实例 13.2.1 程序设计 本实例的目的是从串口输出一个菜单,从中选择各种方法进行测试,比如画线. 画圆.显示单色.使用调色板等. 13.2.2代码详解 ...
- 【python】格式化字符
格式化字符串总结如下,红色部分是需要掌握部分: 以下几个常用的实例: 1.%s的使用 "%s is the author" %("paulwinflo")> ...
- QWidget背景(透明)问题
一. 背景設定為成黑色,前景色設為白色. 方法一.paltette方式,經測試,該方法不會影響到其他控制元件,建議使用 QPalette bgpal = palette();bgpal.setColo ...