你们都是怎么建树的
查看原帖
你们都是怎么建树的
1049868
freeHackerJava楼主2024/10/15 20:28

rt,感觉处理不好就很容易RE,但是我的代码在n=100的时候光预处理就RE了。

void dfsgr(int u,int l,int r){
	bool flag=1;
	for(int i=l;i<=r;i++){
		if(!(s[i]>='0'&&s[i]<='9')){
			flag=0;
			break;
		}
	}
	if(flag){
		nd[u]=stoi(s.substr(l,r-l+1));
		return ;
	}
	int tp=1,fpos;
	for(int i=l;i<=r;i++){
		if(s[i]=='>'||s[i]=='<'){
			ch[u]=s[i];
			fpos=i+1;
		}else if(s[i]=='?'){
			nd[u]=stoi(s.substr(fpos,i-fpos));
			fpos=i+1;
			break;
		}
	}
	for(int i=fpos;i<=r;i++){
		if(s[i]=='?'){
			tp++;
		}
		if(s[i]==':'){
			if(--tp==0){
				dfsgr(tl[u]=++cnt,fpos,i-1);
				dfsgr(tr[u]=++cnt,i+1,r);
			}
		}
	}
}
2024/10/15 20:28
加载中...