A:
發現一個合法的圖一定是一個n-2個偶數度點,2個奇數度點的圖,這兩個奇數度點之間有邊就刪,沒邊就加,對應的歐拉回路圖是唯一的
我們反着考慮這種對應關係,假設我們已知對圖操作後得到的歐拉回路圖G,可以發現對於這n個點完全圖中的每一條邊,若G中有這條邊,刪去這條邊可以得到一個合法的圖,若G中沒有這條邊,加上這條邊也可以得到一個合法的圖,所以其實 ,f(n)是n個點的歐拉回路圖個數,可以dp求
B(bzoj4356):
這篇題解說的非常詳細
概述一下
有個結論是最終的迴路一定圍住了左上角到每個城市左上角的最短路,證明大概是如果有一段(s,t)沒有包含這個最短路,我們可以把這一段路徑改成(s,t)的最短路,答案不會更劣
然後把每個端點拆成4個點,這四個點相鄰的點,他們之間的邊如果沒有被最短路徑阻隔就連一條長度爲0的邊
對於原圖中的邊,對應兩條拆後的點之間的邊,如果這條邊不在某個城市內部就連上
要求最小環,最小環斷開左上角點(1,4)之間的邊後就變成了1到4的最短路,跑一次dijskral就行了
正確性的話,意會一下會發現加上(1,4)後就是圍着所有城市跑了一個最小環
(其實沒有圖我覺得怎麼說都不怎麼清楚…)
C:
直接做不好做,考慮模型轉換
設有n種顏色,每種顏色有ai個球,共有m個球,給每種顏色的球標號1~ai,要求標號爲1的必須放在最前面
我們定義每種顏色第一次出現的位置爲這種顏色的位置,對於一個顏色排列,他對應 種合法排列, 是 的後綴和
證明:設這個顏色排列爲 ,第一個球是 中標號爲1的球的概率是 ,然後去掉顏色 的所有球,剩下的球裏第一個球是 中標號爲1的球的概率是 於是這個顏色排列出現的概率是
如果是每種顏色都要求標號爲1的球在最前面,求總的方案數,我們直接算 就是答案
但是我們是要對每種顏色排列求 ,就是最後一種顏色不要求標號爲1的球在最前面,求合法排列數
考慮容斥,設最後一種顏色是 ,他後面至少有 種顏色,這 種顏色分別有 個球, ,在他前面的 種顏色分別有 個球, 的位置是 ,那麼他貢獻
(最後要乘上 是因爲最後一種顏色不要求標號爲1的球在最前面)
我們可以畫減一下柿子,設 ,有
發現這個東西只和 有關,那個 一定是在選出的 個數裏面枚舉的,我們可以dp組合數前面的部分,在dp的方程裏順便算上
令 表示dp了前i個數,當前選了j個數,和爲k, 的和, 表示dp了前i個數,當前選了j個數,和爲k, 的和,做個 的dp