90分求救!
查看原帖
90分求救!
848091
zhuimeng1233楼主2023/7/18 20:36

实在不知道哪里错了

#include <bits/stdc++.h>
using namespace std;
#define ll long long

bool yb[2001][2001];
string tem;
ll n,yjs[2001];

inline ll ss2 (int a,int b)
//当构成图时(即回到原点),退出,防止循环
{
	if(a==b) return 0;
	if(yjs[a]) return yjs[a];
	ll ans=0;
	
	for(int i=1;i<=n;i++)
	if(yb[a][i])
	 //ans=ans+1+ss2(i,b);
	 ans++;
	
	return yjs[a]=ans;
	
}

inline ll ss (int a)
{
	if(yjs[a])
	 return yjs[a];
	ll ans=0;
	
	for(int i=1;i<=n;++i)
		if(yb[a][i])
		ans=ans+1+ss2(i,a);
	
	return yjs[a]=ans;
}
int main ()
{
	cin>>n;
	for(int i=1;i<=n;++i)
	{
	 	cin>>tem;
	 	for(int j=1;j<=n;++j)
	 	 yb[i][j]=tem[j-1];
	}
	cout<<ss(1);
	return 0;
}
2023/7/18 20:36
加载中...