找茬游戏
  • 板块灌水区
  • 楼主dnbd
  • 当前回复11
  • 已保存回复11
  • 发布时间2020/8/16 22:00
  • 上次更新2023/11/6 20:05:44
查看原帖
找茬游戏
184508
dnbd楼主2020/8/16 22:00

如图所示 代码1P1020的AC代码

#include<iostream> 
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<ctime>
#include<algorithm>
#include<string>
#include<iomanip>
#include<queue>

using namespace std;

int a[200011],k=0,L_1=0,b[200011];

int z_b()
{
	b[++L_1]=a[1];
	for(int i=2;i<=k;++i)
	{	
		if(a[i]<=b[L_1])
			b[++L_1]=a[i];
		else
		{
			int left=1,right=L_1,mid;
			while(left<=right)
			{
				mid=(left+right)/2;
				if(b[mid]>=a[i])
				{
					left=mid+1;
				}
				else
				{
					right=mid-1;
				//	ans=mid;
				}
			}
			b[left]=a[i];
		}
	}
	return L_1;
}

int z_s()
{
	b[++L_1]=a[1];
	for(int i=2;i<=k;++i)
	{	
		if(a[i]>b[L_1])
			b[++L_1]=a[i];
		else
		{
			int left=1,right=L_1,mid;
			while(left<=right)
			{
				mid=(left+right)/2;
				if(b[mid]<a[i])
					left=mid+1;
				else
					right=mid-1;
			}
			b[left]=a[i];
		}
	}
	return L_1;
}

int main()
{
	while(cin>>a[++k]);
	k--;
	printf("%d\n",z_b());
	L_1=0;
	memset(b,0,sizeof(b));
	printf("%d\n",z_s());
	return 0;
}

代码2为WA错解

#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<cstring>
#include<cstdlib>
#include<string>
#include<iomanip>
#include<algorithm> 

using namespace std;

int L_1=0,b[200001],a[200001],k=0;

int z_b()
{
	b[++L_1]=a[1];
	for(int i=2;i<=k;++i)
	{
		if(a[i]<=b[L_1])
			b[++L_1]=a[i];
		else
		{
			int left=1,right=L_1,mid;
			while(left<=right)
			{
				mid=(left+right)/2;
				if(b[mid]>=a[i])
					left=mid+1;
				else
					right=mid-1;
			} 
			b[left]=a[i];
		}
	}
	return L_1;
}

int z_s()
{
	b[++L_1]=a[1];
	for(int i=2;i<=k;++i)
	{
		if(a[i]>b[L_1])
			b[++L_1]=a[i];
		else
		{
			int left=1,right=L_1,mid;
			while(left<=right)
			{
				mid=(left+right)/2;
				if(b[mid]<a[i])
					left=mid+1;
				else
					right=mid-1;
			} 
			b[left]=a[i];
		}
	}
	return L_1;
}

int main()
{
	while(cin>>a[++k]);
	k--;
	printf("%d\n",z_s());
	L_1=0;
	memset(b,0,sizeof(b));
	printf("%d\n",z_b());
	return 0;
 } 

请问诸位dalao,这两个代码有什么不同???

2020/8/16 22:00
加载中...