hdoj-1027-Ignatius and the Princess II(逆康拓展开)
2024-08-28 10:45:34
/*
Name:
Copyright:
Author:
Date: 2018/5/2 11:07:16
Description:输出第m小的序列
*/
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
int fac[] = {,,,,,,,,};//阶乘
//康托展开的逆运算,{1...n}的全排列,中的第k个数为s[]
void reverse_kangtuo(int n,int k,int s[])
{
int i, j, t, vst[]={};
--k;
for (i=; i<n; i++)
{
if (n-i- > ) {
t = k/fac[];
} else {
t = k/fac[n-i-];
}
for (j=; j<=n; j++)
if (!vst[j])
{
if (t == ) break;
--t;
}
s[i] = j;
vst[j] = ;
if (n-i- > ) {
k %= fac[];
} else {
k %= fac[n-i-];
}
}
} int main()
{
int s[] ;
int m, n;
while (cin>>m>>n) {
memset(s, , sizeof(s)) ;
reverse_kangtuo(m, n, s);
cout<<s[];
for (int i=; i<m; i++) {
cout<<" "<<s[i];
}
cout<<endl;
}
return ;
}
最新文章
- JS验证字符长度
- hadoop 文件系统API操作
- Ubuntu 安装Android Studio与使用手册
- Hadoop yarn配置参数
- java 中打印调用栈
- [转]spring mvc注解方式实现向导式跳转页面
- iOS 之 支付
- SEO-外部链接类型以及标准
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
- 一、Hadoop学习笔记————概述
- 如何修改Recovery的字符串资源
- vim删除.swp
- MessageChannel 消息通道
- vue.js 添加 fastclick的支持
- 【待考察】Appium使用技巧,助你快速入门移动端自动化!
- springMvc前后台传值各种情况
- linux下新建(mkdir)、删除(rmdir)文件夹
- unary
- node linux
- [Winform]无边框窗口悬浮右下角并可以拖拽移动