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; }