概念
首先,引入什么是错误列的概念;
排列错误是指有顺序的排列。 其中的各数量在排列后不在原来的位置。
例如1 2 3 4 5
就像其中不能放在第一个地方,不能放在第二个地方一样。
这里有一张用来理解接下来要展示的公式的图
如果你想更好地理解,这里有链接
黑谷小健hpdzxyyds
公式
int dp[25] dp[1]=0; dp[2]=1; for(I=3; i=n; I ) ) /前两个保留,因此从3开始DP[I]=(I-1 ) *(dp[i-1] dp[i-2] ); 错误的队伍可以用公式
组合计算
因此,能够计算并求出n、m、n-m的阶乘
int mo=1,tlddc=1,z2=1,z3=1; for(I=1; i=n; I//这是n的阶乘mo*=i; for(I=1; I=(n-m; //n-m的阶乘z2*=i; for(I=1; i=m; //m的阶乘z3*=i; 这是错误的问题(统计了学生的成绩)。
题目是:给一个学生数,有n个学生,1n15,克总是所有学生成绩排名统计错误
假设可以按1、2、3…或任何顺序对正确的顺序进行排序。
代码如下
# include bits/stdc.husingnamespacestd; # definemax0x3F3 F3 ftypedeflonglongll; #定义bug (a ) coutendl’*’aendl; int main () IOs :3360 sync _ with _ stdio (false ); CIN.Tie(0; cout.tie(0; ll n; cinn; ll dis[30]; dis[1]=0; dis[2]=1; for(intI=3; i=n; I({dis[I]=(I-1 ) * ) *(dis[i-2] dis[i-1] ); } coutdis[n]endl; }输入
3
输出功率
2
n=3时,有两种情况。
3 1 2
2 3 1
最后,hpdzxyyds。