傳遞閉包經典題

2021-10-22 09:51:24 字數 3797 閱讀 8370

傳遞閉包:給了 a 與 b 的關係,又給了 b 與 c 的關係,我們可以推測出 a 與 c 的關係,這個過程就是傳遞閉包。

過程

for_

(k,1

, n)

for_

(i,1

, n)

for_

(j,1

, n)

傳遞閉包經常與 typo 一起使用,在傳遞閉包求出先後、比較、優先順序關係之後用 typo_sort 求出這個順序就行了

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

void

fre(

)void

fre(

)void

run(

int x =0)

#define ios ios::sync_with_stdio(false)

#define pi acos(-1)

#define pb push_back

#define fi first

#define se second

#define db double

#define ll long long

#define ull unsigned long long

#define pir pair

#define m_p make_pair

#define for_(i, s, e) for(ll i = (ll)(s); i <= (ll)(e); i ++)

#define rep_(i, e, s) for(ll i = (ll)(e); i >= (ll)(s); i --)

#define memset(a, b, c) memset(a, (int)b, c);

#define size() size() * 1ll

#define sc scanf

#define pr printf

#define sd(a) sc("%lld", &a)

#define ss(a) sc("%s", a)

#define __ pr( "------------------------\n" );

#define ___ pr("\n------------------------\n");

#define inf 0x3f3f3f3f

#define inf 0x3f3f3f3f3f3f3f3f

#define esp 1e-7

#define mod (ll)(1e9 + 7)

/**************************acmer*************************==*/

const ll mxn =

105;

ll n, m;

ll g[mxn]

[mxn]

;void

init

(ll n)

}int

main()

for_

(k,1

, n)

for_

(i,1

, n)

for_

(j,1

, n)

ll ans =0;

for_

(i,1

, n)

} ans +

= flag;}pr

("%lld\n"

, ans)

;return0;

}

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

void

fre(

)void

fre(

)void

run(

int x =0)

#define ios ios::sync_with_stdio(false)

#define pi acos(-1)

#define pb push_back

#define fi first

#define se second

#define db double

#define ll long long

#define ull unsigned long long

#define pir pair

#define m_p make_pair

#define for_(i, s, e) for(ll i = (ll)(s); i <= (ll)(e); i ++)

#define rep_(i, e, s) for(ll i = (ll)(e); i >= (ll)(s); i --)

#define memset(a, b, c) memset(a, (int)b, c);

#define size() size() * 1ll

#define sc scanf

#define pr printf

#define sd(a) sc("%lld", &a)

#define ss(a) sc("%s", a)

#define __ pr( "------------------------\n" );

#define ___ pr("\n------------------------\n");

#define inf 0x3f3f3f3f

#define inf 0x3f3f3f3f3f3f3f3f

#define esp 1e-7

#define mod (ll)(1e9 + 7)

/**************************acmer*************************==*/

const ll mxn =30;

ll n, m;

ll g[mxn]

[mxn]

;ll in[mxn]

, tim[mxn]

, idx;

//tim 進入佇列的時間戳

struct edge

edge[mxn * mxn <<1]

;ll head[mxn]

, tot;

pir p[mxn * mxn]

;void

init

(ll n)

void

add(ll u, ll v)

bool floyed()

}return1;

}bool check()

}}return1;

}void

typo_sort()

}while

(q.size()

)}}}

intmain()

ll flag =0;

for_

(i,1

, m)pr(

".\n");

break;}

else}}

if(flag ==0)

}return0;

}

經典JS閉包題

在逛部落格時,看見乙個很有意思的閉包題,發現自己對閉包沒有完全理解,故記錄下來。先看題目 function fun n,o var a fun 0 a.fun 1 a.fun 2 a.fun 3 undefined,var b fun 0 fun 1 fun 2 fun 3 undefined,va...

一道傳遞閉包題

省選時孫耀峰大爺講過傳遞閉包相關問題,沒想到竟然遇上了。傳送門這題其實可以用孫耀峰大爺 中 不完全動態傳遞閉包 但利用題目中的一些性質會更好。我一開始的想法是,先將原圖scc縮點,對於每乙個操作時刻結束後,整個圖一定是dag套樹,用靜態傳遞閉包 動態樹相關理論即可。因為只有加點,所以可以倍增。但我們...

flord 傳遞閉包

傳遞指對於乙個節點i,如果j能到i,i能到k,那麼j就能到k。傳遞閉包,就是把圖中所有滿足這樣傳遞性的節點都弄出來,計算完成後,我們也就知道任意兩個節點之間是否相連。break 指跳出一層迴圈 continue 結束本次迴圈,跳過本次判斷語句 每只奶牛的技能獨一無二,如果給奶牛們排序的話,能確定自己...