poj3660 弗洛伊德变形+思维

发布时间:2022-07-03 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了poj3660 弗洛伊德变形+思维脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

#

我们能知道某cow的排名当且仅当知道它前面有多少,后面有多少

#

知道前面有多少?

建边的时候建一点指向比它强的人的边。

相当于问多少点和该点联通。

这个是最短路可以解决的事情(我猜也许拓扑排序也可

#

那后面呢?

反向建边

#如果n变得很大呢?

那就只能用dij,可那就变成了非多最短路了。

也许不能兼得吧。(大数据学生不服.

 

 

---

第一遍的时候re了,因为m=4500,是大于我设置的maxn的。

mark.

#include <iostream>
#include <;math.h>
#include <string.h>
#include <vector>
#include <map>
#include <queue>
#include <stdio.h>
#include <algorIThm>
#include <cstdio>
using namespace std;
const int maxn=1e5;
int n,m,win[maxn],lose[maxn],ans1[maxn],ans2[maxn],d[300][300];
int main( )
{ 

//freoPEn("lys.in","r",stdin);

cin>>n>>m;
    memset(d,0,sizeof(d));
    
    for(int i=1;i<=m;i++)
    {
        cin>>win[i]>>lose[i];
        d[lose[i]][win[i]]=1;
    }
    for(int k=1;k<=n;k++)
     for(int i=1;i<=n;i++)
      for(int j=1;j<=n;j++) 
      {
          if(d[i][k]==1&&d[k][j]==1)
           {
             d[i][j]=1;    
         }
      }
      
      for(int i=1;i<=n;i++)
       {
           for(int j=1;j<=n;j++)
            {
                if(i==j) continue;
                if(d[i][j]==1)
                {
              ans1[i]++;    
            }
         }
       }
       
       memset(d,0,sizeof(d));
    for(int i=1;i<=m;i++)
    {
        d[win[i]][lose[i]]=1;
    }
    
    for(int k=1;k<=n;k++)
     for(int i=1;i<=n;i++)
      for(int j=1;j<=n;j++) 
      {
          if(d[i][k]==1&&d[k][j]==1)
           {
             d[i][j]=1;    
         }
      }
      
      
      for(int i=1;i<=n;i++)
       {
           for(int j=1;j<=n;j++)
            {
                if(i==j) continue;
                if(d[i][j]==1)
                {
              ans2[i]++;    
            }
         }
       }
       
       int ans=0;
       for(int i=1;i<=n;i++)
       {
           if(ans1[i]+ans2[i]==n-1)
           {
             ans++;    
        }
       }
       
       PRintf("%d",ans);
}

 

脚本宝典总结

以上是脚本宝典为你收集整理的poj3660 弗洛伊德变形+思维全部内容,希望文章能够帮你解决poj3660 弗洛伊德变形+思维所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。