Uoj308 UNR 2 UOJ拯救計畫

2022-05-01 10:03:11 字數 1331 閱讀 3926

分析:比較難分析的一道題,先把式子寫出來,ans=∑c(k,i)*f(i),f(i)是選i個顏色的方案數.這個模數有點奇怪,比較小而且是合數,說不定就會有某種規律,如果i >= 3,可以發現c(k,i)一定是被6整除的,那麼我們只需要考慮i=2和i=1的情況,i=1的情況比較好處理,這種情況下,m只有等於0,答案為k^n,然後可以發現,這不僅僅是對i=1的情況的分析,所以我們要先特判m=0.

那麼i=2的情況要怎麼處理呢?把每個連通塊單獨分析,如果乙個連通塊有乙個合法方案,反過來又是乙個合法方案,所以乙個連通塊要麼沒有貢獻,要麼就是2,我們只需要把有貢獻的連通塊的個數cnt求出來,答案就是c(k,2)*2^cnt.一旦有乙個連通塊沒有合法方案,那麼答案就直接為0了.

二分圖方案數要乙個乙個連通塊考慮,求方案數如果不用dp先寫出式子,然後分析.如果模數非常奇怪,找找看有沒有什麼規律.

#include #include 

#include

#include

#include

using

namespace

std;

int t,n,m,k,head[100010],nextt[400010],to[400010],tot = 1

;int col[100010

],ans;

bool flag = false

;void add(int x,int

y)int qpow(int a,int

b)

return

res;

}void dfs(int x,int

c) }

else

dfs(v,

3 -c);

}}int

main()

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

ans *= 2

; ans %= 6

; }

}printf(

"%d\n

",((((k - 1) * k / 2)% 6) * ans) % 6

); }

}return0;

}

UOJ 308 UNR 2 UOJ拯救計畫

uoj 如果模數很奇怪,我們可以插值一下,設 f i 表示用了 i 種顏色的方案數。然而模 6 這個東西很有意思,6 2 3 所以我們只需要考慮其模 2 和模 3 的結果了。而最終答案的貢獻是 sum k a i f i 當 i ge 3 的時候 6 a k i 所以我們只需要知道 f 0 f 1 ...

uoj308 UNR 2 UOJ拯救計畫

傳送門 題解 考慮列舉用了 i 所學校,那麼貢獻為 cnt i 意思是從 k 所選 i 所出來染色,cnt 為固定顏色順序的染色方案,i 為可以交換學校位置。考慮當 i geq 3 的時候,貢獻含有模數因子6,所以模6為0,相當於沒有貢獻。當 i 1 顯然只有 m 0 有貢獻。對於 m 0 我們特判...

A UNR 2 UOJ拯救計畫

題解 感覺多了解一些npc問題是很有用的。就不會像我一樣完全不考慮模數的性質 前面60分大概是送分 後面主要考慮一下 6帶來的影響 平常都是那麼大的模數,突然這麼小?考慮正好使用k種顏色的方案數 f k a n,k 而a n,k n n k 顯然可以發現,當k 3的時候 這個數一定是6的倍數啊 這樣...