前后缀优化建图求助
查看原帖
前后缀优化建图求助
275860
___A__楼主2024/7/18 14:35

只有优化的地方错了

for(int num;k--;){ 
		vector<int>vec;
		cin>>num;
		for(int x;num--;){
			cin>>x,vec.push_back(x);
		}
		for(int i=0;i<vec.size();i++){
		    pre[i+1]=++node,suf[i+1]=++node;
		}
		for(int i=0;i<vec.size();i++){
			if(i){
			    g[pre[i+1]].push_back(pre[i]);
			}
			g[pre[i+1]].push_back(vec[i]);
		}
		for(int i=vec.size()-1;i>=0;i--){
			if(i!=vec.size()-1){
				g[suf[i+1]].push_back(suf[i+2]);
			}
			g[suf[i+1]].push_back(vec[i]);
		}
		int now=0;
		for(int i:vec){
			now++,g[i+3*n].push_back(pre[now-1]),g[i+3*n].push_back(suf[vec.size()-now+1]);
		}
	}
2024/7/18 14:35
加载中...