首頁 >資料庫 >mysql教程 >Codeforces Round #258 (Div. 2) B. Sort the Array (模拟)

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

WBOY
WBOY原創
2016-06-07 15:00:581166瀏覽

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

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

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

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

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

AC代码:


#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>



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn