vijosP1115 火星人

链接:https://vijos.org/p/1115

【思路】

排列组合。

题目要求为求第下m个排列。

这里有两种方法,首选的是调用algorithm中的next_permutation函数,其次就是手写生成函数。

【代码1】53ms

 #include<iostream>
#include<algorithm>
using namespace std;
const int maxn = +;
int p[maxn];
int n,m; int main() {
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=;i<n;i++) cin>>p[i]; while(m--) next_permutation(p,p+n); for(int i=;i<n;i++) cout<<p[i]<<" "; return ;
}

【代码2】106ms

 #include<iostream>
#include<algorithm>
using namespace std;
const int maxn = +;
int p[maxn];
int n,m; bool get_permutation() {
int i=n-;
while(i> && p[i-] >= p[i]) i--;
if(i==) return false;
int mp=i;
for(int j=i+;j<n;j++) {
if(p[j]<=p[i-]) continue;
if(p[j]<p[mp]) mp=j;
}
swap(p[mp],p[i-]);
sort(p+i,p+n);
return true;
} int main() {
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=;i<n;i++) cin>>p[i]; while(m--) get_permutation(); for(int i=;i<n;i++) cout<<p[i]<<" "; return ;
}

最新文章

  1. WCF学习之旅—WCF第二个示例(七)
  2. mybatis 使用经验小结
  3. 项目配置laungchImage
  4. JS-005-常见下拉列表 Select 和 datalist
  5. 使用SqlTransaction回滚事务
  6. [大牛翻译系列]Hadoop(12)MapReduce 性能调优:诊断硬件性能瓶颈
  7. jQuery选择器解释和说明
  8. WPF TextSelection获取选中部分内容
  9. HPU周赛题目解析
  10. sql server 关于日期格式转换查询备注
  11. 关于处理java.lang.IllegalArgumentException at java.sql.Date.getHours异常
  12. [redis] 与redis cluster有关的学习笔记
  13. Go 语言读书笔记
  14. 性能测试十五:liunx下搭建(tomcat+项目+jmete命令行)
  15. xss测试用例
  16. matlab读写视频VideoReader/VideoWriter
  17. SCCM OS播发
  18. PAT 甲级 1077 Kuchiguse
  19. 一款基于HTML5 Canvas的画板涂鸦动画
  20. 在liunx系统安装负载生成器(Load Generator)

热门文章

  1. 用Delphi获取当前系统时间
  2. Java中的异常处理机制的简单原理和应用
  3. 上传项目到Github
  4. 1013: [JSOI2008]球形空间产生器sphere
  5. 年度十佳 DevOps 博客文章(前篇)
  6. 关于SQL语句中SUM函数返回NULL的解决办法
  7. 练习C之SELECT形式的非阻塞IO
  8. android 自定义标题栏 titleBar自定义
  9. CoreData的简单使用(二)数据的增删改查,轻量级的版本迁移
  10. Android DownloadThread.run()学习