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