思维训练

Codeforces Round #359 (Div.2) B.Little Robber Girl‘s Zoo

Little Robber Girl likes to scare animals in her zoo for fun. She decided to arrange the animals in a row in the order of non-decreasing height. However, the animals were so scared that they couldn‘t stay in the right places.

The robber girl was angry at first, but then she decided to arrange the animals herself. She repeatedly names numbers l and r such that r - l + 1 is even. After that animals that occupy positions between l and r inclusively are rearranged as follows: the animal at position l swaps places with the animal at position l + 1, the animal l + 2 swaps with the animal l + 3, ..., finally, the animal at position r - 1 swaps with the animal r.

Help the robber girl to arrange the animals in the order of non-decreasing height. You should name at most 20 000 segments, since otherwise the robber girl will become bored and will start scaring the animals again.
Input

The first line contains a single integer n (1 ≤ n ≤ 100) — number of animals in the robber girl‘s zoo.

The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 109), where ai is the height of the animal occupying the i-th place.
Output

Print the sequence of operations that will rearrange the animals by non-decreasing height.

The output should contain several lines, i-th of the lines should contain two space-separated integers li and ri (1 ≤ li < ri ≤ n) — descriptions of segments the robber girl should name. The segments should be described in the order the operations are performed.

The number of operations should not exceed 20 000.

If the animals are arranged correctly from the start, you are allowed to output nothing.

problem

进行邻近的两两交换,关键点是交换次数不限,一开始想了好久,冒泡解决。

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
ll num[110];
int main() {
    int n;
    while(~scanf("%d",&n)) {
        for(int i=0;i<n;i++) {
            cin>>num[i];
        }
        int temp;
        for(int i=0;i<n;i++) {
            for(int j=0;j<n-1;j++) {
                if(num[j]>num[j+1]) {
                    temp=num[j+1];
                    num[j+1]=num[j];
                    num[j]=temp;
                    cout<<j+1<<" "<<j+2<<endl;
                }
            }
        }
    }

    return 0;
}

时间: 2024-11-09 12:33:03

思维训练的相关文章

「程序员思维训练」1. 读前声明

本书作者:Andy Hunt「催康 译」 读前须知: 本书是对 高级程序员 的思维训练,包括个人提升和团队管理等 在没有达到本书的读者水平的情况现 建议跳读,先了解,取其所需 一本书没有必要一次性读完「针对所有的书籍而言」期间你还可以做很多事情,这样可以提高阅读的效率 Chapter 1 绪论 诀窍 :始终关注情境 经验之谈不是指令清单,它们必须在一定的情境下使用 切记随波逐流                                Only dead fish go with the f

《程序员的思维训练》

<程序员的思维训练> <程序员的思维修炼:开发认知潜能的九堂课> 从程序员的角度去认清自己,思考问题,了解我们的大脑,进而发掘潜能. 作者是亨特(Andy Hunt),他曾经写过<程序员修炼之道——从小工到专家>,<高效程序员的45个习惯:敏捷开发修炼之道>,<Programming Ruby>,<单元测试之道C#版——使用NUnit >.<单元测试之道Java版——使用JUnit>.<版本控制之道——使用CVS &

从程序设计方法到思维训练总结

本文通过几个例子来讲述程序设计方法,通过程序设计方法达到思维训练的目的. 主要的核心设计方法是伪代码法和分解法: 伪代码法:用来描述程序的思路,也可以用来注释 分解法:逐步细化,分解步骤 下面我们通过几个例子来学习伪代码法和分解法.(SD: 以下代码用python语言来编写) 示例索引: 法老的金字塔 丢手绢 示例一.法老的金字塔 题目: 编写一个程序,输入层数,在控制台打印出任意层数的金字塔,如图: 分析: 根据题目,金字塔图形由空格和星号组成,现在先设定金字塔为3层,height = 3 解

【转】多去阅读思维训练类的书籍

原文地址:http://www.nowamagic.net/librarys/veda/detail/2038 多去阅读思维训练类的书籍  这类书籍能提高你人生的加速度 读书毋庸置疑是学习的最佳途径之一,但是为什么有的时候我们会感觉到,读书的学习效果并不明显,或者努力看了很多书却感觉进步不大.为什么会这样呢?这是因为有些事情你可能没有看清楚. 人生是一场拉力赛,完成的工作就像走过的路程,工作能力就像行驶的速度.有些人的一生是匀速前进的,有些人是匀加速前进的,有些人……速度 = 初速度 + 加速度

论思维训练

过去很长一段时间发现自己的没有什么规划,做很多事情完全凭着冲动,在一些周期性比较长的事情上缺乏一些安排,比如出去旅行时不提前订票,到了接近出发日期的时候才去订票,却发现有时候已经买不到票了,前期也不对景点做了解,导致自己去了之后也仅仅是走马观花,乱拍一通照片,回来发现也没什么收获,连精神上的愉悦也很少,有时候是思维上发现自己也缺乏训练,自己会很逃避对一些事情在时间上的规划,总认为自己只要尽心尽力去干就好了,哪里明白一些事情在其间插入进来之后就导致自己想要尽心尽力去做的事情显得有点力不从心了,通过

「程序员思维训练」2. 具体计划

声明:本章着重讲一些理论性的东西,具有计划性,但重在 思考,如果你不是在一个安静的环境下且有耐心,请跳过本章,别浪费时间 另外,作者在书中给出的问题也十分具有参考价值,以后博主会加上 Chapter 4 利用 R 型思维模式 增加 感官体验 以 促进大脑的使用 当你动用其他的输入模式(感官),你就可以激活大脑的更多区域,也就启用了更多的处理能力 定期改变环境,使大脑接受额外的.新奇的刺激「这都是大脑渴望的」对大脑有益 用 R 思维模式 绘画 绘画即是观察 “Drawing” is really

【码农的思维训练:超越专家】

真正的发现之旅不在于追求新大陆,而在于拥有新的视野. --马塞尔?普鲁斯特(Marcel Proust,1871.7.10-1922.11.18),法国20世纪最伟大的小说家,意识流小说的先驱与大师 那么,现在该怎么做? 有效的改变 当你决心改变时,大脑并不是一定会与我们合作.虽然你有学习的意愿,但你的大脑一直在努力保持事情精简.就像一位过度积极的管家,如果大脑认为这项改变不值得付出感情.无关生死存亡,它就会轻视,就像我们之前提到的早上开车上班的例子.因此,你必须说服你的大脑,这项改变非常重要.

高等代数思维训练-从一道例题看高等代数的常用方法[河北师范大学麻常利教授]

链接: http://pan.baidu.com/s/1bn4jOlD 密码: w6kg 这是pdf文件,网上随便就可以找到阅读器,比如 foxit reader 等绿色软件.

思维导图应该这么用

思维导图对很多人来说是意义重大的,尤其很多初学者,急迫的想要学会这种大脑工具,却不得要领,殊不知,思维导图也讲究轻重缓急的.对于任一门学问来说,想要掌握它首先要了解它.那么你知道思维导图的轻重缓急么? 思维导图的轻: 思维导图的基本规则极其简单且容易掌握,几乎可以说任何人都可以看懂.因为思维导图的基本规则本来就是遵循我们大脑的学习和思考模式而设定的,所以按照它画图可以更好的开发大脑的潜能,提高我们的工作效率和思考品质.此乃思维导图之轻,如果能够熟练的掌握并运用这些规则,那么我们在处理问题时,就可