蒟蒻关于define的一点问题
  • 板块学术版
  • 楼主__zyy_wgcs__
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/10/29 20:45
  • 上次更新2023/12/15 19:52:04
查看原帖
蒟蒻关于define的一点问题
995895
__zyy_wgcs__楼主2023/10/29 20:45

rt,我用define写了一个max

#define max(a,b) (((a)>(b))?(a):(b))

完整代码:

#include<stdio.h>
#define max(a,b) (((a)>(b))?(a):(b))
struct node{
	int l,r;
}a[100010];
int n;
int dfs(int i){
	if(i==0){
		return 0;
	}
	return max(dfs(a[i].l),dfs(a[i].r))+1;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d",&a[i].l,&a[i].r);
	}
	printf("%d",dfs(1));
	return 0;
} 

TLE了 换成函数:

#include<stdio.h>
int max(int a,int b){
    return (a>b)?a:b;
}
struct node{
	int l,r;
}a[100010];
int n;
int dfs(int i){
	if(i==0){
		return 0;
	}
	return max(dfs(a[i].l),dfs(a[i].r))+1;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d",&a[i].l,&a[i].r);
	}
	printf("%d",dfs(1));
	return 0;
} 

AC了,请问这是什么原因

2023/10/29 20:45
加载中...