2 条题解

  • 0
    @ 2025-10-8 17:00:31
    #include <bits/stdc++.h>
    using namespace std;
    bool f[110][110];
    int main()
    {
        int n, m;scanf("%d%d", &n, &m);
        memset(f, 0, sizeof(f));
        for(int i=1, x, y; i<=m; i++)
        {
            scanf("%d%d", &x, &y);
            f[x][y] = true;
        }
        for(int k=1; k<=n; k++)
            for(int i=1; i<=n; i++) if(i != k)
                for(int j=1; j<=n; j++) if(j != k && j != i)
                    if(f[i][k] && f[k][j])
                        f[i][j] = true;
        int ans = 0;
        for(int i=1; i<=n; i++)
        {
            int sum = 0;
            for(int j=1; j<=n; j++) if(f[i][j] || f[j][i]) sum++;
            if(sum == n-1) ans++;
        }
        printf("%d", ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 17:00:24
      #include<bits/stdc++.h>
      using namespace std;
      bool f[110][110];
      int main()
      {
          int n,m;scanf("%d%d",&n,&m);
          memset(f,0,sizeof(f));
          for(int i=1,x,y;i<=m;i++)
          {
              scanf("%d%d",&x,&y);
              f[x][y]=True;
          }
          for(int k=1;k<=n;k++)
              for(int i=1;i<=n;i++)if(i!=k)
                  for(int j=1;j<=n;j++)if(j!=k&&j!=i)
                      if(f[i][k]&&f[k][j])
                          f[i][j]=True;
          int ans=0;
          for(int i=1;i<=n;i++)
          {
              int sum=0;
              for(int j=1;j<=n;j++)if(f[i][j]||f[j][i])sum++;
              if(sum==n-1)ans++;
          }
          printf("%d",ans);
          return 0;
      }
      • 1

      *【多源最短路floyd 】[USACO08JAN] Cow Contest S

      信息

      ID
      2276
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      17
      已通过
      15
      上传者