题意:题目给出了m对的相对关系,求有多少个排名是确定的。

链接:点我

如果这个点到其他点的关系是确定的,那么这个点就是确定的,注意如果这个点到不了其他点,但其他点能到这个点,那么这个点和其他点的关系是确定的

样例图:

 #include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
#define pb(a) push_back(a)
const int INF=0x3f3f3f3f;
const double eps=1e-;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=;
int n,m,tt,cnt;
int g[MAXN][MAXN];
int main()
{
int i,j,k;
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
while(scanf("%d%d",&n,&m)!=EOF)
{
int a,b;
cl(g);
for(i=;i<m;i++)
{
scanf("%d%d",&a,&b);
g[a][b]=;
}
for(k=;k<=n;k++)
for(i=;i<=n;i++)
for(j=;j<=n;j++)
if(g[i][k]==&&g[k][j]==) g[i][j]=;
int tot=;
for(i=;i<=n;i++)
{
bool flag=;
for(j=;j<=n;j++)
{
if(i==j) continue;
if(g[i][j]==&&g[j][i]==)
{
flag=;
break;
}
}
if(flag)
{
tot++;
}
}
printf("%d\n",tot);
}
}
05-11 16:55