UVA 120 Stacks of Flapjacks
2013-05-13 20:35
513 查看
水题。
栈的使用;
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int num[50],num1[50],len_num; int get_max(int ii) { int max=ii; for(int i=0; i<ii; i++) if(num[i]>num[max]) max=i; return max; } void resever(int jj) { for(int i=0; i<=jj; i++) num[i]=num1[jj-i]; for(int i=0; i<=jj; i++) num1[i]=num[i]; } int main() { int max; while(scanf("%d",&num[0])!=EOF) { len_num=1; while(getchar()!='\n') cin>>num[len_num++]; for(int i=0; i<len_num; i++) num1[i]=num[i]; for(int i=0; i<len_num-1; i++) cout<<num[i]<<" "; cout<<num[len_num-1]<<endl; for(int i=len_num-1; i>=0; i--) { int j; max=get_max(i); if(max!=i) { if(0==max) { resever(i); cout<<len_num-i<<" "; } else { resever(max); cout<<len_num-max<<" "; resever(i); cout<<len_num-i<<" "; } } } cout<<"0"<<endl; } return 0; }
栈的使用;
#include <algorithm> #include <iostream> #include <iterator> #include <deque> #include <string> #include <sstream> using namespace std; //主函数 int main(void) { //循环处理输入的每组字符串。每次循环一轮要输出最后的0和换行 for (string strLine; getline(cin, strLine); cout << '0' << endl) { //按要求回应输入的字符串行 cout << strLine << endl; //构造字符串流,以遍转换为数字 istringstream iss(strLine); //将字符串转为数字,逆序(最底的在最前)存储在Stack里 deque<int> Stack; for (int nDiam; iss >> nDiam; Stack.push_front(nDiam)); //从底依次上向进行翻转,保持i上面的都比i小 for (deque<int>::iterator i = Stack.begin(); i != Stack.end(); ++i) { //找出i上面(包括i)的最大元素 deque<int>::iterator iMax = max_element(i, Stack.end()); //如果最大元素就是i则继续(将i指向上面一个) if (iMax != i) { //否则要进行需翻转操作 //如果最大的不在最上面,则需先翻转到最上面 if (iMax != Stack.end() - 1) { reverse(iMax, Stack.end()); //输出翻转的起点 cout << distance(Stack.begin(), iMax) + 1 << ' '; } //将最大的从最上面翻转到i的位置上 reverse(i, Stack.end()); //输出翻转的起点 cout << distance(Stack.begin(), i) + 1 << ' '; } } } return 0; }
相关文章推荐
- UVA - 120 Stacks of Flapjacks
- Uva - 120 - Stacks of Flapjacks
- UVA 120 Stacks of Flapjacks ——思路题
- [高效算法 deque运用]UVa120 - Stacks of Flapjacks
- UVA 120 - Stacks of Flapjacks
- uva120 stacks of flapjacks
- [UVA120]Stacks of Flapjacks[STL][构造]
- UVa 120 - Stacks of Flapjacks 解题报告(暴力)
- UVA - 120 Stacks of Flapjacks
- UVa - 120 - Stacks of Flapjacksh
- UVa 120 - Stacks of Flapjacks
- UVA 120 Stacks of Flapjacks
- uva 120 stacks of flapjacks ——yhx
- UVa120 Stacks of Flapjacks
- UVA 120 Stacks of Flapjacks (模拟+贪心)
- uva 120 Stacks of Flapjacks
- UVA - 120 Stacks of Flapjacks
- UVA 120(p236)----Stacks of Flapjacks
- UVa 120 - Stacks of Flapjacks
- uva 120 Stacks of Flapjacks