天天看點

連通數[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\n",ans);
    return 0;
}      

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

轉載于:https://www.cnblogs.com/darlingroot/p/11245077.html