poj 3275 鄰接表優化Floyd

2021-07-14 18:21:27 字數 491 閱讀 4962

傳統floyd是列舉列舉乙個點k在分別列舉k左右兩邊的點i和點j,但是這道題n=1000,n^3的複雜度接受不了,怎麼辦呢?我們看到此題邊很少,所以我們可以存下來每個點的出邊和入邊,然後列舉k是只需要列舉出邊和入邊即可

**如下:

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=1000+5,maxm=10000+5;

int n,m,mp[maxn][maxn],lala;

vector

v[maxn][2];

void add(int x,int y)

signed main(void)

----------

by >o< neighthorn

poj 3275 傳遞閉包

思路 對於n個節點,共有n n 1 2對關係,對於給出的m對已經確定的關係,我們可以用傳遞閉包推出目前已經確定的關係對數ans,於是答案就是n n 1 2 ans.1 include2 include3 include4 include5 include6 using namespace std 7...

POJ 3275 兩種做法

題意 思路 1.floyd傳遞閉包 n 3 32 勉強卡過去吧 2.用鄰接表搞floyd 也是勉強卡過去 最後用n n 1 矩陣中為1的個數就ok了 傳遞閉包 by siriusrem include include include using namespace std bitset 1005 m...

POJ 3275 兩種做法

題意 思路 1.floyd傳遞閉包 n 3 32 勉強卡過去吧 2.用鄰接表搞floyd 也是勉強卡過去 最後用n n 1 矩陣中為1的個數就ok了 傳遞閉包 by siriusrem include include include using namespace std bitset 1005 m...