傳統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...