关于函数调用的用时
  • 板块学术版
  • 楼主JerryTcl
  • 当前回复15
  • 已保存回复15
  • 发布时间2021/9/7 20:45
  • 上次更新2023/11/4 07:19:02
查看原帖
关于函数调用的用时
370352
JerryTcl楼主2021/9/7 20:45

这是一个普通的 DFS, 它会 TLE

void dfs(long long x,long long a=0) {
	if(a>c||a+sv[x]<=ans) return;
	if(x==0) { ans=a; return; }
	dfs(x-1,a+v[x]); dfs(x-1,a);
}

但是如果在递归 dfs(x-1,a+v[x]) 时加上 if ,如下

void dfs(long long x,long long a=0) {
    if(a>c||a+sv[x]<=ans) return;
	if(x==0) { ans=a; return; }
    if(a+v[x]<=c)
	    dfs(x-1,a+v[x]);
    dfs(x-1,a);
}

它就以 25ms 的速度 AC 了。。。 这是为什么呢

2021/9/7 20:45
加载中...