愿各位程序员都能记住,输出第一条hello world时候的心情。坚持下去,你的每一条代码都在默默的改变世界,加油!加油!加油! “这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。 什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。 人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。

Noip2004 火星人 【STL之next_permutation】

 

本人水平有限,题解不到为处,请多多谅解

本蒟蒻谢谢大家观看

 

 

题目传送门

 

直接用全排列即可。

 

推荐使用next_pumutation

 

next_permutation(start,end),和   prev_permutation(start,end)。

 

这两个函数作用是一样的,

 

区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列

 

推荐博客:传送门

 

code:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3  
 4 int a[10001];
 5 int n,m;
 6 inline int read()
 7 {
 8     int x=0,f=1;
 9     char ch=getchar();
10     while(ch<'0'||ch>'9')
11     {
12         if(ch=='-')
13         f=-1;
14         ch=getchar();
15     }
16     while(ch<='9'&&ch>='0')
17     {
18         x=(x<<1)+(x<<3)+(ch^48);
19         ch=getchar();
20     }
21     return x*f;
22 }
23 int main()
24 {
25     n=read();
26 //  printf("\n");
27     m=read();
28     for (int i=1;i<=n;i++)
29     {
30         a[i]=read();
31     }
32      for(int i=1;i<=m;i++)
33     {
34         next_permutation(a+1,a+n+1);
35     }
36     for (int i=1;i<n;i++)
37     {
38         printf("%d ",a[i]);
39     }
40     printf("%d",a[n]);
41     return 0;
42 }

 

posted @ 2019-11-10 15:29  max_lemon  阅读(225)  评论(0编辑  收藏  举报
Live2D
别人恋爱不成功,你连暗恋都不成功! 你写不出代码的原因只有一个,那就是你没有彻底理解这个算法的思想!!-----沃茨·基硕德