连通数[JSOI2010]-洛谷T4306

咕咕咕

tarjan+拓排应该是正解吧

然而我上去就打了个tarjan和dijkstra

(由于我抄题解抄多了,代码能力极差,于是我就gg了)

题解中有大佬直接用dfs过了8个点,再吸口氧就AC了

(这还是人嘛)

吸氧dfs

#include<cstdio>
#include<cstring>
using namespace std;
int n,ans;
char G[2001][2001];
bool vis[2001];
void dfs(int u)
{
    ans++;
    vis[u] = 1;
    for(int i = 0;i < n;i++) 
        if (G[u][i] == '1' && !vis[i])  
            dfs(i);
}
int main()
{
    scanf("%d",&n);
    for(int i = 0;i < n;i++)  
        scanf("%s",G[i]);
    for(int i = 0;i < n;i++)
    {
        memset(vis,0,sizeof(vis));
        dfs(i);
    }
    printf("%d
",ans);
    return 0;
}


咕了吧还是,,,是我太水了

原文地址:https://www.cnblogs.com/darlingroot/p/11245077.html