关于为什么会TLE的搜索
查看原帖
关于为什么会TLE的搜索
392844
JQKLUMARKAR楼主2024/8/30 16:44

(先说一下这是我们老师上搜索时找的例题所以没用什么其他的方法就是朴素的dfs搜索)

#include<bits/stdc++.h>
using namespace std;
typedef int ll;
ll n,m[3005][3005],vis[3005],sum,res; 
void dfs(ll x){
	vis[x]=1;
	for(ll i=1;i<=n;i++){
		if(m[x][i] && !vis[i] && x!=i) ++res,dfs(i);
	}
}
int main(){
	scanf("%d",&n);
	for(ll i=1;i<=n;i++)
    	for(ll j=1;j<=n;j++)
	        scanf("%1d",m[i]+j);
	for(ll i=1;i<=n;i++){
		memset(vis,0,sizeof vis); 
		res=1;
		dfs(i);
		sum+=res;
	}
	printf("%d",sum);
    return 0;
}

按照我的理解是不是从每个点开始跑整个图搜一下n^2的复杂度?
还请大佬指出 谢谢各位了

2024/8/30 16:44
加载中...