翻煎饼

  • 题目描述
    • 输入
    • 输出
    • 样例输入
    • 样例输出
      • 源代码
      • 关于这题

题目描述

输入

输出

样例输入

样例输出

源代码

方法1

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#define N 1001
using namespace std;int n, ans, a[N];
void change(int x)
{int l, r;ans++;l = r = x / 2;r++;if (x % 2 == 1) r++;while (l > 0) swap(a[l--], a[r++]);}int main(){int i, k;scanf("%d", &n);for (i = 1; i <= n; i++) scanf("%d", &a[i]);ans = 0;while (n > 1){k = 1;for (i = 2; i <= n; i++){if (a[k] < a[i]) k = i;}if (k != n){if (k > 1) change(k);change(n);}n--;}printf("%d\n", ans);return 0;}

方法2

#include<stdio.h>
#include<stdlib.h>
int a[1002]={0};
bool flag=true;//是否满足非从小到大排序
int dex=0;//已经排好位置的数量
int conut=0;//最大值下标
int ans=0; //翻转次数
void print(int n){for(int i=1;i<=n;i++){printf("%d ",a[i]);}printf("\n");
}
void juge(int n){int flag1=0 ;for(int i=1;i<=n-1;i++){if(a[i]>a[i+1]){flag=true;flag1++;}}if(flag1==0){flag=false;}}
void turn(int n){//翻转函数//翻转第一次int low=1,high=conut;if(conut!=1){//最上面和不用翻转while(low<=high){int temp=a[low];a[low]=a[high];a[high]=temp;low++;high--; }
//         print(n) ans++;}juge(n);//判断是否从小到大有序if(flag==false){return ;}//翻转第二次 low=1,high=n-dex;while(low<=high){int temp=a[low];a[low]=a[high];a[high]=temp;low++;high--;}
//  print(n);ans++;juge(n);//判断是否从小到大有序 dex++;
}
void find(int n){//查找元素 int max=-1;for(int i=1;i<=n-dex;i++){if(a[i]>=max){max=a[i];conut=i;}}if(conut==n-dex){//目前位置已经是最大位置 dex++;find(n);   }else return ;
}
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}juge(n);//判断是否从小到大有序 防止BUG while(flag&&dex!=n-1){find(n);turn(n);}printf("%d\n",ans);
}

关于这题

这里解释一下第一种方法
思路:先找到一个最大的数 把他移到最前面 再翻转
此时最大的数已经到了末尾 我们就不再处理他 看前面的元素
即处理子数列问题
注:我们要单独去判断 最大的数是不是就是最后一个 不然会出BUG
这里ans 和 数组 我们设立的是全局变量 因为在函数里也要用到
l 和 r 是判断数组位置的 左标和 右标 当 x%2==1时 右标要加一 (不要标记成中间的数了)

*2-1 OJ 254 翻煎饼相关推荐

  1. SWUST OJ 254: 翻煎饼

    标题254: 翻煎饼 题目描述 麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟.最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的技术,一堆煎饼在那里,师傅只需要用铲子翻几下,就让煎饼 ...

  2. SWUST oj 254: 翻煎饼

    题目描述 麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟.最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的技术,一堆煎饼在那里,师傅只需要用铲子翻几下,就让煎饼整齐的叠在了一起. 这 ...

  3. swust oj 254 翻煎饼

    题目描述 麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟.最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的技术,一堆煎饼在那里,师傅只需要用铲子翻几下,就让煎饼整齐的叠在了一起. 这 ...

  4. SWUSTOJ #254 翻煎饼

    SWUSTOJ #254 翻煎饼 题目 输入 输出 样例输入 样例输出 源代码 题目 麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟.最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的 ...

  5. 刘小白第一个博文——算法分析(翻煎饼)

    标题254 翻煎饼 题目描述 麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟.最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的技术,一堆煎饼在那里,师傅只需要用铲子翻几下,就让煎饼整 ...

  6. 翻煎饼问题swust oj~~~254

    翻煎饼 1000(ms) 65535(kb) 2001 / 7227 麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟.最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的技术,一堆煎饼在 ...

  7. 翻煎饼 swustoj 254

    题目描述: 麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟.最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的技术,一堆煎饼在那里,师傅只需要用铲子翻几下,就让煎饼整齐的叠在了一起. ...

  8. c语言煎饼问题算法,翻煎饼问题(示例代码)

    输入 输入包括两行,第一行是一个整数n(1<=n<=1000),表示煎饼的个数,接下来的一行有n个不相同的整数,整数间用空格隔开,每个整数表示煎饼的大小(直径),左边表示顶部,右边表示底部 ...

  9. 【蓝桥备考-每周一题5】翻煎饼(栈的翻转)★

    一:问题 问题描述: 堆栈和队列通常被认为是数据结构的面包和黄油,可用于体系结构.解析,操作系统和离散事件模拟.堆栈在形式语言理论中也很重要.现在的问题涉及黄油和煎饼(而不是面包),同时还有一个根据唯 ...

最新文章

  1. Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
  2. 【转】centos安装vim7.4(转)
  3. iOS WebView 加载本地资源(图片,文件等)
  4. 《Python Cookbook 3rd》笔记(3.13):计算最后一个周五的日期
  5. 【linux】linux系统中常见配置文件及目录说明
  6. MiniDao支持ID自增主键策略,使用讲解
  7. html请求接口_软件测试学习教程——LoadRunner实现接口测试
  8. Bailian2790 迷宫【DFS】
  9. 不知道这十项Linux常识,就别说自己玩过Linux!
  10. 题-芭芭拉冲鸭~(续)(LCA最近公共祖先)
  11. 腾跃英语计算机学院微信公众号,英语四级报名_微信还能这么玩:Geek大学生搭建英语课堂互动系统_沪江英语...
  12. mp2555sp文件服务器,理光mp2555sp驱动
  13. HCRM医院客户管理系统
  14. JavaSE笔记 30天学Java打卡 Day03
  15. Electron渲染进程与主进程进行通信
  16. iMeta | 复杂热图(ComplexHeatmap)可视化文章最新版,画热图就引它
  17. python中的矩阵分块
  18. contenteditable H5聊天室发送表情
  19. 24张神GIF动图:数学概念这么酷!
  20. 免费版的mp3格式转换器有哪些?这三款软件帮你实现!

热门文章

  1. 云原生是什么意思?我们为什么需要云原生?
  2. 爬虫之理财网站招标产品(Python篇)
  3. 如何选择合适的网络自动化工具
  4. IOS软件版本检测更新
  5. ROS2机器人笔记20-11-29
  6. 【MaxCompute】MaxCompute 处理复杂json、json数组
  7. 民航导航技术发展及北斗应用分析
  8. 小熊个人资料_TOP打野Xx小熊是谁 Xx小熊个人资料背景曝光实力超群
  9. 精简指令集结构(Reduced Instruction Set Computer,RISC)
  10. c语言的复试笔试题目,c语言面试最必考的十道试题,求职必看!!!