这个DFS代码是否可以通过剪枝变成AC代码
#include<bits/stdc++.h>
using namespace std;
int ans;
vector<int>g[2005];
bool vis[2005];
void dfs(int x){
vis[x]=1;
ans++;
for(int i=0;i<g[x].size();i++){
if(!vis[g[x][i]]){
dfs(g[x][i]);
}
}
return;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
char a;
cin>>a;
if(a=='1'){
g[i].push_back(j);
}
}
}
for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis));
dfs(i);
}
cout<<ans;
return 0;
}