UVa 120 - Stacks of Flapjacks(构造法)
来源:互联网 发布:必应词典 mac 编辑:程序博客网 时间:2024/05/17 06:28
给出原本煎饼的排序,输出使得煎饼从小到大排列的翻煎饼方式。
翻煎饼就相当于颠倒序列中的一段连续子序列,每次都把没排好的需要排列在最下面的那个煎饼翻上来,然后再翻到相应的位置。
#include<iostream>#include<algorithm>#include<string>#include<vector>#include<sstream>using namespace std;vector<int> a,b;bool cmp(int x,int y){ return x>y;}void reverse(int n){ for(int i=0;i<(n+1)/2;++i) swap(a[i],a[n-1-i]); return;}bool read(){ string s; a.clear(),b.clear(); getline(cin,s); stringstream ss(s); int k,first=1; while(ss>>k){ if(first) first=0; else cout<<" "; cout<<k; a.push_back(k); } if(!a.size()) return false; cout<<endl; b=a; return true;}int main(){ ios::sync_with_stdio(false); while(read()){ int n=(int)a.size(); sort(b.begin(),b.end(),cmp); for(int i=0;i<n;++i){ int j=0; for(j=0;j<n;++j) if(a[j]==b[i]) break; if(j==n-1-i) continue; else if(j){ cout<<n-j<<" "<<i+1<<" "; reverse(j+1); reverse(n-i); } else{ cout<<i+1<<" "; reverse(n-i); } } cout<<"0"<<endl; } return 0;}
0 0
- UVA 120 - Stacks of Flapjacks(构造)
- UVa 120 - Stacks of Flapjacks(构造法)
- uva 120 Stacks of Flapjacks 简单构造
- (白书训练计划)UVa 120 Stacks of Flapjacks(构造法)
- uva 120 Stacks of Flapjacks(检索)
- uva 120 Stacks of Flapjacks(模拟)
- UVa 120 - Stacks of Flapjacks (排序)
- UVA 120 Stacks of Flapjacks (煎饼)
- UVA 120 Stacks of Flapjacks
- UVa 120 - Stacks of Flapjacks
- uva 120 Stacks of Flapjacks
- UVA 120 - Stacks of Flapjacks
- uva 120 - Stacks of Flapjacks
- UVa 120 - Stacks of Flapjacks
- UVA 120 - Stacks of Flapjacks
- UVa 120 - Stacks of Flapjacks
- UVA 120Stacks of Flapjacks
- UVA 120 - Stacks of Flapjacks
- Java_集合操作_List与Set与Map概括
- 【设计模式学习笔记六】【创建型模式】【建造者模式(Builder)】
- nodejs http 发送请求
- 仓储系统开发说明
- java设计模式-备忘录模式
- UVa 120 - Stacks of Flapjacks(构造法)
- Servlet学习笔记(四):Servlet的请求与响应
- EJB3在JBoss5内集群探究
- 转载"H5即将迎来黄金时代 轻应用再成行业焦点"
- 九度1027(判断欧拉回路)
- UVa 11526 - H(n)
- 项目Extjs前台开发模版
- 20130813_Node.JS + MongoDB技术讲座(源码+案例+视频)
- Servlet学习笔记(二):Http协议详解