首页 > 数据库 > mysql教程 > Codeforces Round #258 (Div. 2) B. Sort the Array (模拟)

Codeforces Round #258 (Div. 2) B. Sort the Array (模拟)

WBOY
发布: 2016-06-07 15:00:58
原创
1181 人浏览过

题目链接:Codeforces Round #258 (Div. 2) B. Sort the Array 题意:给出一串序列要就通过一次反转一段子序列使得变化后的序列严递增。 思路:从左向右找出首次下降的,从右向左找出首次下降的,分别记录下标,再在这个段区间里反转。最后判断是否递增。 反

题目链接:Codeforces Round #258 (Div. 2) B. Sort the Array

题意:给出一串序列要就通过一次反转一段子序列使得变化后的序列严格递增。

思路:从左向右找出首次下降的,从右向左找出首次下降的,分别记录下标,再在这个段区间里反转。最后判断是否递增。

反转想到字符串(或STL)有个反转库函数。读者可以试试。

AC代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

#include<stdio.h>

int main()

{

    int n,i;

    int x,y,j;

    int a[100010];

    while(scanf("%d",&n)!=EOF)

    {

        for(i=1;i=a[i])

            {

                x=i-1;

                break;

            }

        }

        for(i=n;i>=1;i--)

        {

            if(a[i-1]>=a[i])

            {

                y=i;

                break;

            }

        }

        //一开始就是递增的

        int t;

        if(x==y && x==-1)

        {

            printf("yes\n%d %d\n",1,1);

            continue;

        }

        //反转。

        for(i=x,j=1;j=a[i])

            {

                mark=1;

                break;

            }

        }

        if(mark==1)

            printf("no\n");

        else

            printf("yes\n%d %d\n",x,y);

    }

return 0;

}</stdio.h>

登录后复制



相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板