社区讨论

50分不是RE就是MLE求救啊!!

P7912[CSP-J 2021] 小熊的果篮参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lzgq7xns
此快照首次捕获于
2024/08/05 16:25
2 年前
此快照最后确认于
2024/08/05 17:06
2 年前
查看原帖

超清晰代码:

CPP
#include<bits/stdc++.h>
#include<deque>
using namespace std;
struct sg{
	int zl,bh;/*种类 编号*/	
}a;
int e1,sr_e=-1,sl/*输入用*/;
deque<sg> q[100005];
queue<int> ans[100005];
int n,f,cnt,e2;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&e1);
		a.bh=i;
		a.zl=e1;
		if(e1!=sr_e){
			sl++;
			sr_e=e1;	
		} 
		q[sl].push_back(a);
	}
	/*for(int i=1;i<=sl;i++){
		while(!q[i].empty()){
			printf("%d ",q[i].front().bh);
			q[i].pop();
		}
		printf("\n");
	}*/
	while(f<sl){
		cnt++;
		for(int i=1;i<=sl;i++){
			if(!q[i].empty()){
				e1=q[i].front().bh;
				q[i].pop_front();
				if(!q[i].empty()){
					e2=i-1;
					while(q[e2].empty()){
						e2--;
						if(e2==0) break;
					}
					if(e2>0&&q[e2].back().zl==q[i].front().zl){
						while(!q[i].empty()){
						a.bh=q[i].front().bh;
						a.zl=q[i].front().zl;
						q[i].pop_front();
						q[e2].push_back(a);
						}
					}
				}
				ans[cnt].push(e1);
				if(q[i].empty()) f++;
			}
		}
	}
	for(int i=1;i<=cnt;i++){
		while(!ans[i].empty()){
			printf("%d ",ans[i].front());
			ans[i].pop();
		}
		printf("\n");
	}
	return 0;
} 

回复

0 条回复,欢迎继续交流。

正在加载回复...