2867: 【例57.1】 字典序第几小
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:2
解决:2
题目描述
从$1$开始到$n$($1≤n≤9$)这$n$个数字一共可以组成$n!$个不同的排列。现在给出其中一个排列,求它是所有排列中字典序第几小的排列?
输入
第一行一个整数 $n$。
第二行一个整数 $x$,是由 $1$ 到 $n$ 这 $n$ 个数字组成的某个排列。
第二行一个整数 $x$,是由 $1$ 到 $n$ 这 $n$ 个数字组成的某个排列。
输出
一个整数,表示该排列是字典序第几小的。
样例输入 复制
4
2143
样例输出 复制
8
提示
#include<bits/stdc++.h>
using namespace std;
int n,cnt;
char c;
vector<int> a,b;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>c;b.push_back(c-48) ;
a.push_back(i);
}
do{
cnt++;
if(a==b) break;
}while(next_permutation(a.begin(),a.end()));
cout<<cnt;
return 0;
}