vijosP1115 火星人
2024-10-19 04:33:07
vijosP1115 火星人
【思路】
排列组合。
题目要求为求第下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 ;
}
最新文章
- WCF学习之旅—WCF第二个示例(七)
- mybatis 使用经验小结
- 项目配置laungchImage
- JS-005-常见下拉列表 Select 和 datalist
- 使用SqlTransaction回滚事务
- [大牛翻译系列]Hadoop(12)MapReduce 性能调优:诊断硬件性能瓶颈
- jQuery选择器解释和说明
- WPF TextSelection获取选中部分内容
- HPU周赛题目解析
- sql server 关于日期格式转换查询备注
- 关于处理java.lang.IllegalArgumentException at java.sql.Date.getHours异常
- [redis] 与redis cluster有关的学习笔记
- Go 语言读书笔记
- 性能测试十五:liunx下搭建(tomcat+项目+jmete命令行)
- xss测试用例
- matlab读写视频VideoReader/VideoWriter
- SCCM OS播发
- PAT 甲级 1077 Kuchiguse
- 一款基于HTML5 Canvas的画板涂鸦动画
- 在liunx系统安装负载生成器(Load Generator)