uva 120
来源:互联网 发布:免费顶级永久域名注册 编辑:程序博客网 时间:2024/04/29 17:48
题意:
给定一个数组,经过多次翻转后数组是递增的,输出原数组,翻转位置,最后输出一个0
如:
1 2 3 4 5
0
4 3 2 1 5
0
3 4 1 2 5
4 2 4 0
题解:
从数组的末位置开始循环,每次把对应位置最大的数翻转到对应位置,如1 2 3 4 5中5是最大的则应翻转到index=4这个位置,由于本来就在该位置,所以不用进行翻转。每次应考虑将最大数翻转到数组首地址之后,再进行最大数翻转到正确位置的操作。同时应考虑 1 1 1 1 1 输出 0 这种特殊情况
代码:
#include <bits/stdc++.h>using namespace std;int n;int stacks[35];void flip(int i){ int times=(i+1)/2; for(int j=0;j<times;j++) { swap(stacks[j],stacks[i-j]); } cout<<n-i<<" ";}int main(){ string line; while(getline(cin,line)) { stringstream ss(line); n=0; while(ss>>stacks[n]) { n++; } for(int j=0;j<n;j++) cout<<stacks[j]<<" "; cout<<endl; for(int j=n-1;j>=0;j--) { int position = max_element(stacks,stacks+j+1)-stacks; if(stacks[j]==stacks[position]) continue; if(position>0) flip(position); flip(j); } cout<<0<<endl; } return 0;}
阅读全文
0 0
- uva 120
- uva 120
- uva-120
- uva 120
- uva 120
- UVA 120
- UVA 120 煎饼堆
- uva 120 煎饼堆
- UVa 120 煎饼堆
- UVa 120 煎饼堆
- uva 120(排序,检索)
- UVA 120 解题报告
- UVA 120 煎饼
- UVA/8-1 120
- uva 136 120页
- uva
- UVA
- UVA
- 获取历史和实时股票数据接口
- redis过期时间的过期策略
- 第三章maven的DOS命令创建java、web项目
- HDU1235 统计同成绩学生人数
- linux下rabbitmq SimpleAmqpClient客户端的使用的简单例子
- uva 120
- AndroidStudio基础教程(一)
- redis的数据安全性和性能保障
- Revit二次开发 自带的钢筋
- 原生js封装AJAX(代码+注释)
- Atitit 技术管理项目管理的职责列表attilax总结 v2 r74 brch4com.docx
- httpclient4.5 入门教程 1.1执行请求
- mybatis-generator结合freemarker生成简单的service
- 无处不在的字符串和包装类,看完你就超神