咕咕咕
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