题意:给出n张煎饼,从上到下输入,每张煎饼上面都有一个数字,厨师每次可以选择第k张煎饼,进行翻转操作,设计一种方法使得所有煎饼按照从小到大排序(最上面的煎饼最小)

首先是这个翻转的操作,如下图

如图所示:是把7以上的翻转,再把7以下的翻转

然后就是怎样找到去翻转哪张饼 以找最大的为例 即现在在煎饼的序列中找到最大的饼的序号,

判断序号是否与煎饼上的数字对应得上(即判断这个煎饼有没有放对位置)

如果没有放对位置

判断它是否已经在0位置(即顶部)

如果不在,

则将它翻转到0位置

如果在,则不用管

最后,再将它翻下去,到达它应该在的位置

如图 输入 2 1 5 3 4

先找到最大的5,把它翻到顶上去,再把它翻下来

 #include<cstdio>
#include<iostream>
#include<sstream>
#include<algorithm>
using namespace std; const int maxn=;
int a[maxn];
int n; void flip(int p){
for(int i=;i<p-i;i++) swap(a[i],a[p-i]); printf("%d ",n-p);
} int main(){
string s;
while(getline(cin,s)){
cout<<s<<"\n";
stringstream ss(s) ;
n=;
while(ss>>a[n]) n++; for(int i=n-;i>;i--){
int p=max_element(a,a+i+)-a;//找到最大的数的下标 if(p==i) continue;//如果这块饼的位置是对的,就不管
if(p>) flip(p);//如果饼不是在0位置,那么将这块饼 翻到0位置
flip(i);//将这块 饼翻到它应该在的位置
}
printf("0\n");
}
return ;
}

自己写的代码不仅不忍直视= =还运行不出结果,最后还是看的lrj的代码 = =

go---go---go

UVa 120 Stacks of Flapjacks【构造法】的更多相关文章

  1. (白书训练计划)UVa 120 Stacks of Flapjacks(构造法)

    题目地址:UVa 120 水题. 从最大的開始移,每次都把大的先翻到最上面,再翻到以下. 代码例如以下: #include <iostream> #include <cstdio&g ...

  2. Uva 120 - Stacks of Flapjacks(构造法)

    UVA - 120  Stacks of Flapjacks Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld &a ...

  3. uva 120 stacks of flapjacks ——yhx

     Stacks of Flapjacks  Background Stacks and Queues are often considered the bread and butter of data ...

  4. UVA 120 Stacks of Flapjacks

    每次从最底部开始处理,如果不是最大值,则把最大值翻到底部.这就是最优解.原理自己模拟一下就好... 注意半径不是从1开始.数据处理要仔细. #include <iostream> #inc ...

  5. UVA - 120 Stacks of Flapjacks(煎饼)

    题意:一叠煎饼,每个煎饼都有一个数字,每次可以选择一个数k,把从锅底开始数第k张以及其上面的煎饼全部翻过来,最终使煎饼有序排列(锅顶最小,锅底最大). 分析:依次从锅底向上,优先排数字最大的煎饼.每次 ...

  6. UVaOJ 120 - Stacks of Flapjacks

    120 - Stacks of Flapjacks 题目看了半天......英语啊!!! 好久没做题...循环输入数字都搞了半天...罪过啊!!! 还是C方便一点...其实C++应该更方便的...C+ ...

  7. UVa 11925 Generating Permutations (构造法)

    题意:给定一个序列,让你从一个升序列变成该序列,并且只有两种操作,操作1:交换前两个元素,操作2:把第一个元素移动到最后. 析:一开始的时候吧,不会,还是看的题解,首先是要逆序来做,这样可能好做一点, ...

  8. uva Stacks of Flapjacks

                                                     Stacks of Flapjacks  题目链接:Click Here~ 题目描写叙述:     ...

  9. 紫书 习题 8-24 UVa 10366 (构造法)

    又是一道非常复杂的构造法-- #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a) ...

随机推荐

  1. ffmpeg 打开视频流太慢(上)

    新版ffmpeg打开网络视频流需要调用avformat_find_stream_info方法,很多朋友会发现调用改方法耗费很多时间造成打开视频流太慢.有两个参数可以减少avformat_find_st ...

  2. 推荐acm题目

    杭电  http://acm.hdu.edu.cn/onlineuser.php. 浙大  http://acm.zju.edu.cn/onlinejudge/submit.do?problemId= ...

  3. ComboTree使用

      1.参考资料 1.http://www.jeasyui.com/documentation/combotree.php 2.http://blog.csdn.net/woshichunchun/a ...

  4. sigleSchool 存储过程例1

    CREATE OR REPLACE PROCEDURE SINGLSCHOOL( PICIID IN VARCHAR2, SCHOOLID IN NUMBER, SCHETYPE IN number, ...

  5. timeit统计运行时间

    import timeitt1 = timeit.timeit('sum(x*x for x in xrange(10000))',number = 10000) print t1

  6. Stateless Iterators

    As the name implies, a stateless iterator is an iterator that does not keep any state by itself. The ...

  7. UNIX command Questions Answers asked in Interview

    UNIX or Linux operating system has become default Server operating system and for whichever programm ...

  8. hdu 1242 Rescue(BFS,优先队列,基础)

    题目 /******************以下思路来自百度菜鸟的程序人生*********************/ bfs即可,可能有多个’r’,而’a’只有一个,从’a’开始搜,找到的第一个’r ...

  9. Android开发--解决AndroidADT开发工具不能代码提示的问题

    google android的新的开发工具,打开以后没有代码自动提示功能,下面对ADT工具的一些配置: 1.设置代码的字体 设置JAVA文件代码的字体:我这里设置的14 常规.

  10. PowerDesigner修改设计图中文字的字体大小等样式

    设计图中默认的字体是对英文比较合适的,中文就看不清楚了,特别不美观.但是可以通过修改“Display Preferences”适应我们的汉字. 我使用的PowerDesigner版本是15.1(测试版 ...