求原因(关于 string 和 switch 的问题)
  • 板块学术版
  • 楼主ChenHaoQi
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/11/21 20:40
  • 上次更新2024/11/21 21:57:03
查看原帖
求原因(关于 string 和 switch 的问题)
1421527
ChenHaoQi楼主2024/11/21 20:40

这道题完整代码中有如下片段:


	if(s[pos]=='1'){		
		a[pos].ls=build(pos,pos+a[pos].size);
		a[pos].size+=a[a[pos].ls].size;
	}
	else if(s[pos]=='2'){
		a[pos].rs=build(pos,pos+a[pos].size);
		a[pos].size+=a[a[pos].rs].size;
	}
	else if(s[pos]=='3'){		
		a[pos].ls=build(pos,pos+a[pos].size);
		a[pos].size+=a[a[pos].ls].size;
		a[pos].rs=build(pos,pos+a[pos].size);
		a[pos].size+=a[a[pos].rs].size;
	}

这是 AC\color{forestgreen} AC的。

但将其替换为:


	switch(s[pos]){
		case '1':
			a[pos].ls=build(pos,pos+a[pos].size);
			a[pos].size+=a[a[pos].ls].size;
			break;
		case '2':
			a[pos].rs=build(pos,pos+a[pos].size);
			a[pos].size+=a[a[pos].rs].size;
			break;
		case '3':
			a[pos].ls=build(pos,pos+a[pos].size);
			a[pos].size+=a[a[pos].ls].size;
			a[pos].rs=build(pos,pos+a[pos].size);
			a[pos].size+=a[a[pos].rs].size;	
			break;
		default: return -1;	
	}

开O2:WA\color{red}WA
不开O2:RE\color{purple}RE

So,Why?

2024/11/21 20:40
加载中...