幻想鄉三連A 五顏六色的幻想鄉

2022-05-03 18:39:09 字數 1114 閱讀 8293

非常直接地構造

由於答案與生成樹計數有關,所以一定要使用矩陣樹定理,但這樣就不能限制每種顏色的便使用的數量

我們構造$n^2$個關於$ans_$的方程,列舉將紅色的邊拆成$x$條,將藍色的邊拆成$y$條,跑一遍矩陣樹定理,就得到$$g_=\sum\limits_^ \sum\limits_^ ans_\cdot x^i\cdot y^j$$然後會發現$ans_$可以看做這個二維多項式的係數,直接用拉格朗日插值構造得解。

#include#include#include#include#include#define ll long long

#define mod 1000000007

#define m 60

using namespace std;

int read()

int n,m,u[m*m],v[m*m],kd[m*m],mat[m][m],t[m][m],ans[m][m];

int x[m],y[m],tmp,v[m][m];

int add(int x,int y)

int mus(int x,int y)

int mul(int x,int y)

void upd(int &x,int y)

int qpow(int x,int sq)

return res;

}int init(int x,int y);

int dt,inv,now=1,ot;

memset(mat,0,sizeof(mat));

for(int i=1;i<=m;i++)

for(int i=1;i=n) return 0;

if(ot!=i)

now=mul(now,mat[i][i]),inv=qpow(mat[i][i],mod-2);

for(int j=i+1;j

} return now;

}void solve(int x,int y)

if(i!=y)

} for(int i=0;i

}int main()

幻想鄉三連C 狂飆突進的幻想鄉

題解 不難發現,對於每一條從 s 到 t 的路徑,設其 x y 的和為 s x s y 其對答案的貢獻是 a cdot s x 1 a cdot s y 這是乙個關於 a 的一次函式。而所有的路徑就對應著許多 a in 0,1 直線,而不同 a 所對應的最短路長度恰好構成了這些直線的上凸殼,而求最短...

單身三連之三

這是最終章,永久的思念。題目大意 有n張牌,每張牌兩面都有數字,範圍都在1到2n之間,求最少的反轉次數,使得每張牌朝上的一面的數字各不相同,並求出達到這個效果的方案數。多測,初始時每張牌正面朝上,無解輸出 1 1 題解 20 資料 n 20 直接搜尋即可。100 資料 n 1 105 搜尋複雜度不允...

NOIP三連測總結

近三天舉行了三場考試,好像考得都不咋地,與上一周專題訓練相比相差甚遠。單就分數來說,基本看不下去。基本就在20名左右徘徊。但是,三天以來,從第一天思維僵化忽略各種情況到今天想到第二題正解 雖然寫掛了 個人感覺自己的狀態還是在變好,並且收穫了一些乾貨 1.對於輸入輸出接近longlong的題目,不要因...