Luogu P4007 小 Y 和恐怖的奴隸主

2022-03-25 16:52:14 字數 539 閱讀 4501

link

設\(f_\)為第\(i\)次攻擊時,場上還有\(a,b,c\)個\(1,2,3\)血的隨從的概率。

轉移隨便討論一下就行了。

設\(g_i\)表示前\(i\)次攻擊對 boss 造成的期望傷害,轉移就是\(\frac1f_\rightarrow g_i\)。

因為\(k\le8\),所以實際上狀態很少,總共只有\(z=166\)個。

倍增預處理轉移矩陣的\(2^k\)次冪,查詢時拿行向量乘上對應的轉移矩陣即可,時間複雜度為\(o(z^3\log n+tz^2\log n)\)。

#include#includeusing i64=long long;

const int n=170;const i64 p=998244353,inv=;

int tot=1,st[n],id[1<<12];

struct matrixi64*operator(int x)}e[60];

void operator*(matrix&a,matrix&b)

}

清華集訓 小 Y 和恐怖的奴隸主

傳送門 觀察到 m 的值很小,考慮把不同血量的隨從的個數計入狀態。設 dp 表示在第 i 次攻擊之後,還剩 a 個一血怪,b 個二血怪,c 個三血怪的概率。轉移很顯然,只需要注意生成新怪的情況即可。但是這對於 n le 10 來說是完全不行的。我們考慮矩陣加速。首先我們對每乙個合法的三元組 a,b,...

清華集訓 2017 小 Y 和恐怖的奴隸主

是不是這題太水了都沒人寫啊 本題官方題解提供的做法實際上複雜度非常高 很顯然本題的 text 是儲存每種血量的隨從數量 設狀態數量的上限是 s 當 m 3,k 8 時,這樣的狀態一共有 s 165 1 種 如果直接 dp 每次轉移是 o 1 的,可以做到 o n cdot s 顯然無法處理 n 較大...

洛谷4005 小Y和地鐵(搜尋)

洛谷 有點長。首先對於需要被鏈結的兩個點,樣例中間基本上把所有的情況都給出來了。但是還缺了一種從下面繞道左邊在從整個上面跨過去在從右邊繞到下面來的情況 從反過來是一樣的 然後把所有方法分類之後發現實際上只有 4 種決策。而 4 種決策中,兩兩一組,可以發現對於後面結果的影響是相同的,那麼只需要貪心的...