WA68求条,qwq
查看原帖
WA68求条,qwq
564643
YLXxxx楼主2024/11/1 20:46
#include<bits/stdc++.h>
using namespace std;
long long n,m,x[31000],y[31000],s;
bool b[31000];
vector <long long> vt[31000];
bitset <31000> rd[31000],cd[31000];
void ddfs(long long u)
{
	if(b[u]==true)
	{
		return;
	}
	b[u]=true;
	long long ls=vt[u].size(),v;
	for(long long i=0;i<ls;i++)
	{
		v=vt[u][i];
		rd[v]|=rd[u];
		ddfs(v);
		cd[u]|=cd[v];
	}
	return;
}
int main()
{
	long long u,v;
	cin>>n>>m;
	for(long long i=1;i<=m;i++)
	{
		cin>>u>>v;
		vt[u].push_back(v);
		cd[u][v]=true;
		rd[v][u]=true;
		x[i]=u;
		y[i]=v;
	}
	for(long long i=1;i<=n;i++)
	{
		ddfs(i);
//		cout<<i<<":";
//		for(long long j=1;j<=n;j++)
//		{
//			if(rd[i][j]==true)
//			{
//				cout<<j<<" ";
//			}
//		}
//		cout<<endl;
//		cout<<i<<":";
//		for(long long j=1;j<=n;j++)
//		{
//			if(cd[i][j]==true)
//			{
//				cout<<j<<" ";
//			}
//		}
//		cout<<endl;
	}
	for(long long i=1;i<=m;i++)
	{
		s+=(cd[x[i]]&rd[y[i]]).any();
	}
	cout<<s;
	return 0;
}
2024/11/1 20:46
加载中...