1.各种数: 全排列:P(n,n)=n! 部分排列:P(n,m)=n!/(n-m)! 组合数:公式:C(n,m)=n!/(m!*(n-m)!) 递推式 :C(n,m)=C(n-1,m)+C(n-1,m-1) Lucas定理:C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p #defi ...
分类:
其他好文 时间:
2019-11-23 10:01:02
阅读次数:
68
开源地址: "点击该链接" 前言 最近比较忙,这周几乎没有刷题,只刷了6道题~ 题目汇总 0387_first_unique_character_in_a_string类似的题目比较多了,字符串中找出特别的那一个,由于字符串数目有限,所以直接使用哈希表即可,使用 unordered_map 会有点慢 ...
分类:
其他好文 时间:
2019-11-18 12:41:55
阅读次数:
95
恢复内容开始 1.先上个基础的全排列 #include<iostream> #include<cstring> using namespace std; const int maxn=1e3; int vis[maxn]; int p[maxn]; int n; int t=0; void dfs( ...
分类:
其他好文 时间:
2019-11-13 00:45:31
阅读次数:
62
递归打印全排列 #include<iostream> #include<algorithm> #include<ctime> #define Swap(a,b) {int temp=a;a=b;b=temp;} using namespace std; int data[]={1,2,3,4,5,6 ...
分类:
编程语言 时间:
2019-11-11 15:35:30
阅读次数:
125
题意:http://codeforces.com/problemset/problem/915/C 举个例子:假使排好序后a字符串是123456,b是456456,按照上述方法遍历,213456 ->312456->412356->(这是第一个字符的最大值,再往下变的话只能是5了,但不满足题意)—– ...
分类:
其他好文 时间:
2019-11-02 13:40:59
阅读次数:
80
https://www.luogu.org/problem/P2824 题目描述 在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种: ...
分类:
编程语言 时间:
2019-11-01 16:11:55
阅读次数:
78
题目描述 给定一个含有n个元素的数列,第i号元素开始时数值为i,元素i可以与距离为d[i]的元素进行交换。再给定一个1-n的全排列,问初始的数列可否交换成给定的样式。 输入:第一行一个整数n,第二行n个互不相同的整数表示目标数列,第三行n个整数表示d[i]; 输出:如果能交换到给定样式,输出"YES ...
分类:
其他好文 时间:
2019-10-31 13:37:31
阅读次数:
96
公式 $cp_i=(i 1) (cp_{i 1}+cp_{i 2})$ 证明 容斥可以比较容易的证明 正整数的全排列有$n!$种情况,其中第i位是i的情况为$(n 1)!$ 即共有$\sum_{i=1}^{n}(n 1)!$,但是所求的是错排序列, 即需要将错排1个的加上,错排2个的减去······ ...
分类:
其他好文 时间:
2019-10-24 19:57:18
阅读次数:
86
[算法总结]康托展开Cantor Expansion 一、关于康托展开 1.什么是康托展开 求出给定一个由1~n个整数组成的任意排列在1~n的全排列中的位置。 解决这样问题的算法叫康托展开。 例如: $n=4$,序列a={$1,3,4,2$},那么a在1~4中的全排列位置为第4个。 2.康托展开实现 ...
分类:
编程语言 时间:
2019-10-24 15:27:19
阅读次数:
94
方法一(非递归): 算法原理:P = {1,2,3,...n},元素集合1、在P中从右向左遍历,直至查到P{i} < P{i+1} ,记录i的值2、在P中从右向左遍历,找到第一个比P{i}大的值 P{j},记录此时j的值3、交换P{i}??????? 和P{j}??????的值4、将i以后的值翻转, ...
分类:
其他好文 时间:
2019-10-23 13:26:00
阅读次数:
61