求助QAQ,神奇的越界
查看原帖
求助QAQ,神奇的越界
422328
yywlp楼主2023/6/9 15:35
void count(int u,int &ans){
	map<int,int>vps,ps;
	ps[0]=0;
	for(int i=head[u];i;i=edge[i].next){
		int v=edge[i].to;
		if(vis[v])continue;
		vps.clear();
		dep[v]=edge[i].L;
		cost[v]=edge[i].D;
		init(v,u,vps);
		int size=vps.size();
		int j;
		for(it=ps.begin();it!=ps.end();it++);
		for(it=vps.begin(),j=1;j<=size;it++,j++){
			zt=ps.upper_bound(m-(*it).first);
			if(zt!=ps.begin())ans=max(ans,(*(--zt)).second+(*it).second);
		}
		for(it=vps.begin(),j=1;j<=size;it++,j++)insert((*it).first,(*it).second,ps);
	}
}

其中

for(it=ps.begin();it!=ps.end();it++);

这一句如果不加就会奇怪的越界

这是完整代码

这是样例

1

7 5

1 2 1 1

2 3 1 1

3 4 1 1

4 5 1 1

2 6 1 1

1 7 1 1

2023/6/9 15:35
加载中...