Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

鄙人提一个比较愚蠢的观点

Posted by zhanshi at 2006-07-21 14:46:54 on Problem 1363
In Reply To:是不是这个意思?判断是否是栈序列,所有比n小并且在n后的数字,必须按照降序排列 Posted by:yangguo981 at 2006-04-09 14:16:08
这个题目正规的是要用堆栈来做的,因为堆栈存储数据的规则是“后进先出,先进后出”但是 这个题目可以建立两个数组来做为“堆栈”要提出元素就只能从数组的最后一为提出:
代码如下:
#include<iostream>
using namespace std;
int main()
{
	int n;
while(scanf("%d",&n)&&n)
{
while(1)
{
	int sh[1010],m=0;
	sh[m++]=0;
	int ch[1010];
	int yes[1010];
	memset(yes,1,sizeof(yes));
	int i=0;
	for(i=0;i<n;i++)
	{
		scanf("%d",&ch[i]);
		if(ch[i]==0)
			break;
	}
	if(i==0)
		break;
	int no=0;
	for(i=0;i<n;i++)
	{
		yes[ch[i]]=0;
	    for(int j=sh[m-1]+1;j<ch[i];j++)
			if(yes[j])
				sh[m++]=j;
	    if(ch[i]==sh[m-1])
			m--;
		else if(ch[i]<sh[m-1])
			no=1;
		if(no)
			break;
	}
	if(no)
		printf("No\n");
	else printf("Yes\n");
}
}
return 0;
}
现在是PE  改一下就好-----

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator