swust.oj,0541
2017-04-11 17:57
232 查看
#include<stdio.h> #include<iostream> #include<algorithm> using namespace std; int a[20]; int jiecheng(int x) { int ans = 1; for (int i = 1; i <= x; i++) { ans *= i; } return ans; } void init() { a[0] = 1; for (int i = 1; i <= 15; i++) { a[i] = jiecheng(i);//每一个多少种排序 } } int main() { int n; while (cin >> n) { int t = n; int num[20]; init(); for (int i = 0; i < n; i++) { cin >> num[i]; } int ans = 0; for (int i = 0; i < n; i++) { int cnt = 0; for (int j = i + 1; j < n; j++) { if (num[j] < num[i]) { cnt++; }//一个一个排序,如2 1 3 5 4这样,1<2 那么在这个序列之前就有去掉1这么多的全排列 } ans += a[--t] * cnt; } cout << ans << endl; next_permutation(num, num + n);//下一个升序序列在"stdlib"中 for (int i = 0; i < n; i++) { cout << num[i] << ' '; } cout << endl; } return 0; }
相关文章推荐
- swustoj(0541)
- 代码:swust oj 0083 阶乘问题
- swustoj表达式转换(0309)
- SWUSTOJ福布斯富豪榜(0273)
- Mincost(swust oj 0021)
- swust oj1040 一元多项式的加法
- [Swust OJ 603]--吃饺子大王
- [Swust OJ 552]--拼音教学(找规律)
- [Swust OJ 799]--Superprime Rib(DFS)
- [Swust OJ 409]--小鼠迷宫问题(BFS+记忆化搜索)
- 【swust.oj_0415】Digital Roots
- [Swust OJ 746]--点在线上(线段树解法及巧解)
- [Swust OJ 567]--老虎在不在笼子里(凸包问题)
- [Swust OJ 1023]--Escape(带点其他状态的BFS)
- [Swust OJ 385]--自动写诗
- 【swust.oj_1066】有向图的邻接矩阵存储强连通判断
- [Swust OJ 352]--合并果子(贪心+队列模拟)
- [Swust OJ 643]--行列式的计算(上三角行列式变换)
- [Swust OJ 838]--最优价值(0-1背包+数学)
- [Swust OJ 589]--吃西瓜(三维矩阵压缩)