组合数学
文章平均质量分 58
Devinxtw
毛毛虫蜕变记
展开
-
代码实现组合数
/*组合数学 的组合数*/#include <iostream>#include <stdio.h>using namespace std;int main(int argc, char const *argv[]){ int sum = 1; int n,r; cin>>n>>r; for(int i = 1;i <= r;...原创 2018-05-21 15:10:39 · 671 阅读 · 0 评论 -
卡特兰数模板(大数)
#include <iostream> #include <cstring> #include <cstdio> using namespace std; #define MAX 100 #define BASE 10000 void multiply(int a[],int Max,int b) {//大数乘法 int...原创 2018-06-05 20:13:31 · 397 阅读 · 0 评论 -
字典序法 组合数学
引言对一个给定数据进行全排列,在各种场合经常会用到。组合数学中,生成全排列的方法有很多,卢开澄老师的《组合数学》中就介绍了三种:序数法,字典序法,临位互换法等。其中以字典序法由于算法简单,并且使用的时候可以依照当前状态获取下一个状态,直到所有排列全部完成,方便在程序中随要随用,应用比较广泛,STL中的Next_permutation也是使用此法。算法定义首先看什么叫字典序,顾名思义就是按照字典的...原创 2018-05-24 10:21:12 · 2904 阅读 · 1 评论 -
母函数
#include <iostream> using namespace std; const int _max = 10001; // c1是保存各项质量砝码可以组合的数目 // c2是中间量,保存没一次的情况 int c1[_max], c2[_max]; int main() { int nNum; //你想用已有的面值组成nN...原创 2018-06-05 20:18:45 · 135 阅读 · 0 评论 -
floyd算法
for(int k=0;k<n;k++){for(int i=0;i<n;i++){for(int j=0;j<n;j++){map[i][j]=min(map[i][j],map[i][k]+map[k][j]);}}}原创 2018-06-05 20:20:57 · 124 阅读 · 0 评论 -
POJ 排列水题1833
题目描述:大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。任务描述:给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3…n。比如:n = 3,k=2 给出排列2 3 1,则它的下1个排列为3 1...原创 2018-06-05 21:53:42 · 1120 阅读 · 1 评论