题目的意思是给定k个盒子,每个盒子的维度有n dimension问最多有多少个盒子能够依次嵌套但是这个嵌套的规则有点特殊,两个盒子,D = (d1,d2,...dn) ,E = (e1,e2...en) 只要盒子D的任意全排列,小于盒子E,那么就说明盒子D能放入盒子E中,其实就是将两个盒子的维度排序...
分类:
其他好文 时间:
2015-04-03 22:19:45
阅读次数:
221
题目:给你一个字符串,判断他是这些字符组成的全排列中按字典序排序的第几位。
分析:组合数学。康托展开,枚举长度求和即可。
首先,考虑非重集,从前向后扫描,每一位找到前面相同本位小于对应值得串个数;
例如:f(cba)= 2*2!+ 1*1!= 5,对应第6个串;
(c**对应a、b开头的比他小,cb*对应ca开头的比他...
分类:
其他好文 时间:
2015-04-02 10:29:31
阅读次数:
180
package com.kpp;/** * 求字符串的全排列 * 递归的思想 * 比如 abcde 先求出abcd的全排列,然后将e分别插入全排列的5个位置 * a 全排列 a * ab 全排列 ab ba * abd 全排列即是 cab acb abc cba bca bac * * ...
分类:
编程语言 时间:
2015-04-02 01:10:49
阅读次数:
168
题目要求是找到一组数组的全排列思路1:递归,在num中拿出1个数字放在第一个,然后剩下的数字做一个全排列 1 class Solution { 2 public: 3 vector > permute(vector &num) { 4 int n = num.size(); ...
分类:
其他好文 时间:
2015-04-01 15:01:16
阅读次数:
91
一、字典序法1) 从序列P的右端开始向左扫描,直至找到第一个比其右边数字小的数字,即。2) 从右边找出所有比大的数中最小的数字,即。3) 交换与。4) 将右边的序列翻转,即可得到字典序的下一个排列。5) 重复上面的步骤,直至得到字典序最大的排列,即左边数字比右边的大的降序排列。//字典序法void ...
分类:
编程语言 时间:
2015-03-31 14:21:41
阅读次数:
261
题目 H: 擅长排列的小明
时间限制: 20 Sec 内存限制: 128 MB
提交: 21 解决: 17
[提交][状态][论坛]
题目描述
小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
...
分类:
其他好文 时间:
2015-03-31 09:14:15
阅读次数:
137
acm.pdsu.edu.cn欢迎大家踊跃的刷题...
分类:
其他好文 时间:
2015-03-31 09:14:15
阅读次数:
86
#include
#include
#include
using namespace std;
//next_permutation()全排列的下一个
//prev_permutation()全排列的前一个,括号中都为数组的起始结束位置的指针
void print_int(int a[], int length) {//这个用来输出数组
for (int i = 0; i < l...
分类:
其他好文 时间:
2015-03-31 09:04:45
阅读次数:
127
题目:求一个字符串的全排列。
思路:我们可以生成一个解答树:拿字符串“bca”来说,此时如果我们处理到第cur个位置,那么我们可以和从当前这个位置开始依次和之后的位置互换字符,这样就能确保二叉树每一层(当前位置)的结果都能出现过了,然后接着递归下去。
package org;
import java.util.Arrays;
public class SortMethod {
pu...
分类:
编程语言 时间:
2015-03-29 00:40:51
阅读次数:
139
第一步,排列的精髓是交换和顺序处理,比如,考虑[1,2,3,4]排列,实际上是,1和1,2,3,4分别交换得来
1和1交换:[1],[2,3,4]
1和2交换:[2],[1,3,4]
1和3交换:[3],[2,1,4]
1和4交换:[4],[2,3,1]那么下面分别考虑上面的四个结果,比如,考虑
[1],[2,3,4]第二步,我们把[1]固定不变,考虑[2,3,4],把它看成是2和2,3,...
分类:
编程语言 时间:
2015-03-20 23:51:29
阅读次数:
311