#include<stdio.h>
long long a[1000000][1000000]={0};
long long c(long long b[][1000000],long long x,long long v,long long o,long long h){
for(long long i=x;i<v;i++){
for(long long m=0;m<v;m++){
if(b[i][m]==1){
if(h>o)o=h;
for(long long t=0;t<v;t++){
if(b[i][t]!=1&&b[m][t]!=1){
b[i][t]=0;
b[m][t]=0;
}
}
c(b[][1000000],m,v,o,h+1);
}
}
}
return o;
}
int main(){
long long n;
scanf("%d",&n);
long long b[n][2];
for(long long i=0;i<n;i++){
scanf("%d %d",&b[i][0],b[i][1]);
}
for(long long i=0;i<n;i++){
for(long long m=0;m<n;m++){
if(b[m][1]<=b[i][0]||b[m][0]>=b[i][1])a[i][m]=1;
}
}
long long o=0;
long long h=1;
long long f=long long c(a,0,n,o,h);
printf("%lld",f);
return 0;
}
main函数里:
c(b[][1000000],m,v,o,h+1);这里,改成 c(b,m,v,o,h+1);
long long f= long long c(a,0,n,o,h); 改成 long long f= c(a,0,n,o,h);
c函数里,递归调用的时候,c(b,m,v,o,h+1)这里没有返回值,应该是 return c(b,m,v,o,h+1);
(2)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!