WOJ2549 邏輯的連通性

2021-09-25 21:54:14 字數 1226 閱讀 9933

數學中,假如有命題 p 一定能推出命題 q,則稱 p 是 q 的充分條件,q 是 p 的必要 條件。

特別的,當 p 既是 q 的充分條件,又是 q 的必要條件時,稱 p 和 q 互為 充要條件

現在有 n 個命題,其中一些是另一些的充分條件。請問有多少對命題互為 充要條件?

輸入
第一行兩個正整數 n,m分別表示命題數和已知關係數

接下來 m 行,每行兩個正整數 p 和 q,表示命題 p 是命題 q 的充分條件

輸出
僅一行,乙個整數,表示充要條件的對數
考試t2,tarjan手癌了……(u和v什麼的果然容易打錯)然後沒開longlong,gg了

圖論,tarjan

每給一組p q則從p往q連一條有向邊

tarjan縮點之後每個連通分量裡面的任意兩個點都互為充要條件,所以tarjan裡每找到乙個連通分量的時候記一下這個連通分量的大小(彈棧的時候id[cnt]++),最後對於每個連通分量的大小\(k\)求乙個\(c^2_k\)相加即可

#include#define m (600000+5)

#define n (50000+5)

using namespace std;

inline int read()

while(isdigit(c))

return cnt*f;

}long long n,m,ans=0;

long long nxt[m],first[n],to[m],low[n],dfn[n],sign=0,sta[n],top=0,tot;

long long cnt,id[n];

bool insta[n];

void add(int x,int y)

void dfs(int u)

else if(insta[v]&&dfn[v]}

if(low[u]==dfn[u]) while(sta[top--]!=u);

}}long long ask(long long x)

int main()

for(register int i=1;i<=n;i++)

for(register int i=1;i<=cnt;i++)

ans+=ask(id[i]);

printf("%d",ans);

return 0;

}

測試Lync連通性的工具

操作如下 如果你想手動指定邊緣伺服器,就請指定第二項 我現在想測試自動發現服務並登入,所以選擇第一項,並選擇next 2.輸入完整的資訊,以下是虛擬的,請按實際輸入資訊。如果你覺得在別人的 上輸入密碼不安全,那就請你建立個測試帳號吧。如果你的邊緣伺服器證書不是公共可信任的證書 如自己ad的證書 請選...

連通性 SaaS揮之不去的短板

本文講的是連通性 saas揮之不去的短板,it168 資訊 提到saas和雲計算,很多人都會談論到它們的安全 隱私和合規問題,但卻很少有人談及它們的連通性。由於saas應用完全依靠網際網路接入,因此一旦網際網路中斷,企業對saas的訪問馬上就會受到影響,包括erp crm和sfa。saas上的所有資...

Jzoj3898 樹的連通性

其實這題做法很多嘛,簡單說一下 一眼看過去肯定是lct啦,於是馬上開始打 打到一半發現似乎不用lct?好像樹剖也可以嘛 結果發現樹剖也不用,直接乙個dfs序就可以了嘛 用線段樹維護每個點能到達的最遠的祖先,刪邊的時候將整個區間覆蓋即可 注意,對於在子樹中已經斷開的節點不要再覆蓋,可以記錄每個節點深度...