求 try-catch 时间常数大的原因及如何替代
  • 板块学术版
  • 楼主konyakest
  • 当前回复11
  • 已保存回复11
  • 发布时间2022/4/29 12:52
  • 上次更新2023/10/28 02:41:01
查看原帖
求 try-catch 时间常数大的原因及如何替代
482660
konyakest楼主2022/4/29 12:52

考虑这段代码

将它的 dfs 函数中改一小部分(见图片)

一个用了continue,一个用了try-catch(当然,这里使用仅供测试)

它们的时间差了100倍

求出现如此差异的原因

还有,如果有一道搜索题,要求你搜到一组解就立刻输出,并且是多组数据,我目前只能想到这一个方法

...
void dfs(...){
	if(搜到一个可行解){
		for(int i=1;i<=k;i++) cout<<ans[i]<<" ";
		cout<<endl;
		throw 1;
	}
    ...
}
...
int main(){
	cin>>t;
	while(t--){
		...
		try{dfs(...);}
		catch(...){}
	}
	return 0;
}

如果try-catch常数大,有没有别的方法代替?

2022/4/29 12:52
加载中...