Uva11925
来源:互联网 发布:翼龙贷网网络贷款 编辑:程序博客网 时间:2024/06/02 07:11
题目链接
原题的意思是把有序序列变成目标序列,例如例题中要把[1,2,3]变成[2,1,3],我们可以采用逆向思维,就是把给出的序列变成有序序列。操作1不变,操作2变成把尾部的元素添加到头部,打印的时候逆序打印。
#include <iostream> #include <cstring>#include <cstdio>#include <algorithm>#include <string>#include <string.h>#include <cmath>#include <sstream>#include <set>#include <map>#include <functional>#include <queue>#include <vector>using namespace std;const int maxn = 310;int n;int arr[maxn];vector<int> vec;bool judge()//判断是否顺序{ for (int i = 0; i < n - 1; i++) if (arr[i] > arr[i + 1]) return false; return true;}int main(){ while (scanf("%d", &n) && n != 0) { vec.clear(); for (int i = 0; i < n; i++) scanf("%d", &arr[i]); while (1) { if (judge()) break; if (arr[0] != n&&arr[0] > arr[1]) { vec.push_back(1); swap(arr[0], arr[1]); } else { int temp = arr[n - 1]; for (int i = n - 1; i >= 0; i--) arr[i] = arr[i - 1]; arr[0] = temp; vec.push_back(2); } } for (int i = vec.size() - 1; i >= 0; i--) cout << vec[i]; cout << endl; }}
阅读全文
0 0
- Uva11925
- 生成排列(Generating Permutations, UVa11925)
- STM32之GPIO有启发1
- 动态规划----0-1背包问题
- before伪元素和after伪元素的具体使用
- apt lock
- JavaScript的循环结构
- Uva11925
- Spring源码学习思路
- (十九)四大组件的工作过程-BroadcastReceiver
- 第十章 进程与僵尸进程 (上)
- HDU4565 So Easy!【矩阵快速幂】
- (二十)四大组件的工作过程-ContentProvider
- linux下如何解决socket的error: [Errno 98] Address already in use
- 模块化?组件化?插件化?热更新?热修复?
- js循环结构while