// 全排列问题.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
using namespace std;
template
void swap(T *str1,T *str2)
{
T temp;
temp=*str1;
*str1=*str2;
*str2=temp;
}
void permStr(char *str,...
分类:
其他好文 时间:
2014-10-09 16:32:48
阅读次数:
187
终于做出来了,激动。。。。这道题隐藏得深啊,但若推导下来,就变简单了。首先,一个集合的子集的个数为2^n=s。注意了,题目求的是有序集合组,并且每个集合是可以重复使用的,怎么办呢?这就要想到多重集合的排列问题了。一个多重集合有k种元素,每种元素可以无限次使用,求r-排列个数。答案为 k^r个。这样,...
分类:
其他好文 时间:
2014-10-02 19:25:03
阅读次数:
171
Josephus排列问题的解决方法,以Python编程语言为例
分类:
其他好文 时间:
2014-09-26 19:28:58
阅读次数:
143
全排列函数next_permutationSTL中专门用于排列的函数(可以处理存在重复数据集的排列问题)头文件:#includeusingnamespacestd;调用:next_permutation(start,end);注意:函数要求输入的是一个升序排列的序列的头指针和尾指针.用法: 1 //...
分类:
其他好文 时间:
2014-09-14 20:33:27
阅读次数:
361
问题的由来:编号为1到n的n个元素,顺序的进入一个栈,则可能的出栈序列有多少种?对问题的转化与思考:n个元素进栈和出栈,总共要经历n次进栈和n次出栈。这就相当于对这2n步操作进行排列。问题等价于:n个1和n个0组成一2n位的2进制数,要求从左到右扫描,1的累计数不小于0的累计数,试求满足这条件的数有...
分类:
其他好文 时间:
2014-08-29 19:50:48
阅读次数:
271
前一段时间总结了全排列问题的几种递归解法,今天再总结一下如何通过对系统栈行为的模拟来非递归的实现全排列问题。 我们用一个数组stack[]来表示一个栈,用一个top指针来表示栈顶,用一个flags[]数组来标示每一个数字的可用性;用i来表示当前的状态。 初始状态top=0;i=-1;f...
分类:
其他好文 时间:
2014-08-21 22:31:37
阅读次数:
206
[问题描述]列出所有从数字1到数字n的连续自然数的排列,要求所产生的任一数字序列中不允许出现重复的数字。输入:n(1n then begin for i:=1 to n do write(a[i],' '); writeln; end else for i...
分类:
其他好文 时间:
2014-08-12 21:28:34
阅读次数:
341
一周总结状态压缩:状态压缩无论是有关于图的遍历的还是图形和物体的放置的,都可归结于一类问题,那就是排列问题即先算谁的问题。如:hdu4295题意说将4个子串放入一个主串中,使得覆盖的字符数最大和最小。此题先预处理每个子串可在主串中放的位置pos[i][j]以kmp字符串匹配算法...
分类:
其他好文 时间:
2014-08-10 10:19:00
阅读次数:
205
1.概念 生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数....
分类:
其他好文 时间:
2014-07-31 09:35:06
阅读次数:
284