清華集訓2014 BZOJ3812 主旋律

2021-07-10 22:45:13 字數 1977 閱讀 7953

description

響應主旋律的號召,大家決定讓這個班級充滿愛,現在班級裡面有 n 個男生。

如果 a 愛著 b,那麼就相當於 a 和 b 之間有一條 a→b 的有向邊。如果這 n 個點的圖是強聯通的,那麼就認為這個班級是充滿愛的。

不幸的是,有一些不好的事情發生了,現在每一條邊都可能被摧毀。我作為愛的使者,想知道有多少種摧毀的方式,使得這個班級任然充滿愛呢?(說人話就是有多少邊的子集刪去之後整個圖仍然強聯通。)

input

第一行兩個數 n 和 m,表示班級裡的男生數和愛的關係數。

接下來 m 行,每行兩個數 a 和 b,表示男生 a 愛著男生 b。同時 a 不等於 b。

所有男生從 1 到 n 標號。

同一條邊不會出現兩遍,但可能出現 a 愛著 b,b 也愛著 a 的情況,這是兩條不同的邊。

output

輸出一行乙個整數,表示對 109+7 取模後的答案。

sample input

5 15

4 34 2

2 52 1

1 25 1

3 24 1

1 45 4

3 45 3

2 31 5

3 1

sample output

9390

hint

對於 100% 的資料滿足: n≤15,0≤m≤n(n−1)。

source

2023年國家集訓隊測試

一道很傳統的題目.

首先很容易想到是狀壓dp.

題目所求的東西,可以轉化為乙個問題:」原圖有多少個子圖是強連通的.」

這個問題本身不太好做,但是我們可以考慮從他的對立面」多少子圖是不強連通的」入手.

顯然如果乙個子圖是不強連通的,那麼他縮點後一定是乙個節點數目大於等於2的dag.

所以可以用總方案數減掉能劃分出縮點後節點數目大於等於2的方案數,只要列舉有多少點點集縮點後是乙個dag,然後dp就行了.

既然選取的點集縮點後一定是個dag,那麼接下來的問題就變成了:給定一張有向圖,有多少種選邊方案使得選出來的子圖構成乙個dag.

那麼我們考慮列舉乙個點集v,列舉出度為0的點集v』.然後可以容斥+dp.容斥過程中可以發現,如果v』中選的點縮完是奇數個點,對答案貢獻是正的,否則是負的.然後只要算出奇數個點的方案減去偶數個點的方案就行了.

然而到這裡還是只能在原題得70分…最後還要預處理乙個 點集劃分成奇數個沒有出度的點減去偶數個沒有出度的點 的方案數.

我的題解可能比較碎而且看不懂..可以看po姐的**裡的注釋,更加直接..

#include

#include

#include

#include

#include

#define p 1000000007

#define maxn 16

#define get (ch>='0'&&ch<='9')

using namespace std;

int n,m;

int bit[1

<1

<1

<1

int pow[maxn*maxn];

inline void in(int &x)

int main()

int sum=0;//edge number

for (int j=0;jif (i&(1

<0;

intx=use[i],v=i-(1

int sum=0;

for (int j=i;j;(--j)&=i)

int edgecnt=tmp[j],t=1ll*g[j]*h[i-j]%p

*pow[edgecnt]%p;

(sum+=t)%=p;

}((f[i]-=sum)+=p)%=p;(g[i]+=f[i])%=p;

}cout<1

<1]<}

清華集訓 2014 玄學

update text update 我之前講的是個什麼鬼 如果想看看人話版本 戳這。感覺自己被坑騙了。題目明明寫了所有資料不超過int,敢情是輸入資料不超int?迷惑行為 題目感覺有點繞,我盡量 不口胡。首先我們搞一顆線段樹1,樹表示插入序列的編號。如,在q行中第i個出現插入操作 其實拿到這道題我...

清華集訓2014 mex

有乙個長度為n的陣列。m次詢問,每次詢問乙個區間內最小沒有出現過的自然數。考慮用線段樹維護,維護什麼?我們把這些點分布在數軸上,那麼我們要在這個數軸上找到答案,就要把區間轉換到數軸上,也就是要維護每個數的下標。那麼滿足維護這個東西的,可以用權值線段樹。這樣,我們可以衍生出兩種做法 離線做法 把所有的...

46 清華集訓2014 玄學

一開始腦子進水了 把這題想簡單了 複雜度算錯了 每次都用nlogn的時間修改 而且還狂寫stl 然後就直播自爆8小時qaq。先掛個5分 include include include include include includeusing namespace std define rep i,j,...