NOIP2004火星人

法1:裸的全排列

加点优化也可以很快---洛谷6ms

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N=10005;
 6 int read(){
 7     char c=getchar();
 8     int x=0;
 9     while(c<'0'||c>'9') c=getchar();
10     while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} 
11     return x;
12 }
13 int n,m;
14 int c[N];
15 int main(){
16     n=read();m=read();
17     for(int i=1;i<=n;i++) c[i]=read(); 
18     for(int i=1;i<=m;i++)
19         next_permutation(c+1,c+n+1);
20     for(int i=1;i<=n;i++) printf("%d ",c[i]);
21 } 

法2:编码解码

如白书第十章

以后再更新

原文地址:https://www.cnblogs.com/candy99/p/5745758.html