5,6,9,10 RE了,其他全过
查看原帖
5,6,9,10 RE了,其他全过
596825
legend3366楼主2022/1/20 16:13
#include<bits/stdc++.h>
using namespace std;
typedef  long long int ll;
ll  qaq[100005], sum1,n, cishu,a, b, ans, result, sum, x, i, j, flag;
struct nima
{
	ll a[4000], num=1;

}qwq[4000];//包含一个数组和这个数组有几个元素
bool cmp(struct nima aa, struct nima b)
{
	return aa.num < b.num;
}
int main()
{
	ll zushu = 0;
	cin >> n;
	for (i = 1; i <= n; i++)
		cin >> qaq[i];
	sort(qaq+1, qaq + n+1);
	for (i = 1; i <= n; i++)//用于检索
	{
		if (zushu == 0)
		{
			zushu++;
			qwq[zushu].a[qwq[zushu].num] = qaq[i];
			continue;
		}
		for (j = zushu; j >0; j--)//可能要立flag,重点在于从后往前插还是从前往后插
		{
			
			if (qwq[j].a[qwq[j].num] + 1 == qaq[i])//可以入队
			{
				qwq[j].a[qwq[j].num + 1] = qaq[i];
				qwq[j].num++;
				break;
			}
			if (j == 1)//找不到可以插入的地方
			{
				zushu++;//新建一个组插入
				qwq[zushu].a[1] = qaq[i];
				break;
			}
		}
	}
	sort(qwq+1,qwq+zushu+1,cmp);
	cout << qwq[1].num;
	return 0;
}

数组再开大就提示MLE了 求教为什么RE

2022/1/20 16:13
加载中...