P1088 火星人

Posted misuchii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1088 火星人相关的知识,希望对你有一定的参考价值。

技术图片

技术图片

技术图片

技术图片

这里用到了一个特别神奇的函数 STL里面algorithm头文件的一个函数 next_permutation() 返回给定范围中的元素组成的下一个按字典序的排列 即就是直接按照题意进下一个

AC代码:

 1 #include<bits/stdc++.h>
 2 #define pi acos(-1)
 3 typedef long long ll;
 4 typedef unsigned long long ull;
 5 using namespace std;
 6 
 7 namespace io 
 8     const int SIZE = 1e7 + 10;
 9     char inbuff[SIZE];
10     char *l, *r;
11     inline void init() 
12         l = inbuff;
13         r = inbuff + fread(inbuff, 1, SIZE, stdin);
14     
15     inline char gc() 
16         if (l == r) init();
17         return (l != r) ? *(l++) : EOF;
18     
19     void read(int &x) 
20         x = 0; char ch = gc();
21         while(!isdigit(ch)) ch = gc();
22         while(isdigit(ch)) x = x * 10 + ch - 0, ch = gc();
23     
24  using io::read;
25 
26 bool cmp(const int &a, const int &b)
27     return a > b;
28 
29 
30 int main()
31     ios::sync_with_stdio(false);
32     int n, m;
33     cin>>n>>m;
34     int a[10005];
35     memset(a, 0, sizeof(a));
36     for (int i = 1; i <= n; i++) cin>>a[i];
37     while (m--) next_permutation(a + 1, a + n + 1);
38     for (int i = 1; i < n; i++) cout<<a[i]<< ;
39     cout<<a[n]<<endl;
40     return 0;
41 

 

以上是关于P1088 火星人的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P1088 火星人

洛谷P1088——火星人(全排列+数学模拟)

华为OD机试 - 火星文计算 2(Python)| 真题+思路+代码

华为OD机试 - 火星文计算2(JS)| 真题+思路++考点+代码

华为OD机试真题Python实现火星文计算真题+解题思路+代码(2022&2023)

牛客-火星人——next_permutation运用题