P4336 SHOI2016 黑暗前的幻想鄉

2022-05-20 20:25:40 字數 690 閱讀 4908

p4336 [shoi2016]黑暗前的幻想鄉

每種顏色恰好一條邊,有點難處理啊

根據套路,資料範圍這麼小,容斥一下所有的情況就可以了

對每種顏色進行狀壓,表這次只能選這些顏色,做\(n-1\)的時候會加上多餘的東西,就減去\(n-2......\)

剩下的交給矩陣樹,這題有模數,高斯消元的時候逆元

#include#include#include#include#includeusing namespace std;

typedef long long ll;

const ll maxn=19;

const ll p=1e9+7;

inline ll read()

while(c>='0'&&c<='9')

x=(x<<3)+(x<<1)+c-'0',c=getchar();

return x*f;

}ll n,ans;

ll m[maxn],size[1<>=1;

} return ret;

}inline ll solve()

} ans=(ans+(( ((n-1-size[i])&1)==0)?solve():-solve())+p)%p;

} printf("%lld\n",ans);

return 0;

}

SHOI2016 黑暗前的幻想鄉

點此看題 好久沒有做過這麼版的題了 首先你要知道指數級容斥,也就是我們列舉乙個公司集合,表示我們只在這些公司中選邊,那麼我們就用全部公司 少乙個公司 少兩個公司 來計算就行。知道邊算生成樹,不就是矩陣樹定理麼?include include include include using namespa...

SHOI2016 黑暗前的幻想鄉

幻想鄉是個什麼東西?逃 就是設 dp i 表示至多i個公司修建道路,那麼我們有 ans dp n 1 dp n 2 dp n 3 balabala 就是那個容斥公式嘛qwqwq 然後每次都跑一次矩陣樹定理qwqwq 但是這樣的時間複雜度是 o n 32 所以說。跑的。2s。很勉強qwqwq 如下 i...

SHOI2016 黑暗前的幻想鄉

如果沒有建築公司的限制,那麼就是個 mathrm 板子 其實有了也一樣 發現 n leq 17 考慮容斥 每次欽定一些建築公司,計算它們包含的邊的生成樹的方案數 複雜度 mathrm 2 nn 3 include include include include define rg register ...