luogu11月月賽T3咕咕咕(組合數學)

2022-02-27 04:55:35 字數 1985 閱讀 7641

小 f 是乙個能鴿善鵡的同學,他經常把事情拖到最後一天才去做,導致他的某些日子總是非常匆忙。

比如,時間回溯到了 2018 年 11 月 3 日。小 f 望著自己的任務清單:

看 ig 奪冠;

補月賽題的鍋。

小 f 雖然經常咕咕咕,但他完成任務也是很厲害的,他一次性可以完成剩餘任務的任一非空子集。比如,他現在可以選擇以下幾種中的一種:

看 ig 奪冠;

補月賽題的鍋;

一邊看 ig 奪冠的直播,一邊補鍋。

當然,比賽實在是太精彩了,所以小 f 就去看比賽了。

不過,當金雨從天而降、ig 舉起獎盃之時,小 f 突然心生愧疚——鍋還沒補呢!於是,小 f 的內心產生了一點歉意。

這時小 f 注意到,自己總是在某些情況下會產生歉意。每當他要檢查自己的任務表來決定下一項任務的時候,如果當前他幹了某些事情,但是沒乾另一些事情,那麼他就會產生一定量的歉意——比如,無論他今天看沒看比賽,只要沒有補完月賽的鍋,他都會在選擇任務的時候產生 11 點歉意。小 f 完成所有任務後,他這一天的歉意值等於他每次選擇任務時的歉意之和。

過高的歉意值讓小 f 感到不安。現在,小 f 告訴你他還有 n 項任務,並告訴你在 m 種情況中的一種的情況下,小 f 會產生 ai​點歉意。請你幫忙計算一下,小 f 在那一天所有可能的完成所有任務方式的歉意值之和是多少。

由於答案可能很大,你只需要輸出答案對 998244353取模即可。

輸入格式:

輸入一行兩個整數 n, m,表示有 n 項任務,在 m種情況中下小 f 會產生歉意值。

輸入接下來 m 行,每行有乙個長度為 n 的 0-1串 和乙個歉意值 ai,ai為 0/1表示第 j項任務此時沒做 / 已經做了。

詳情請參考樣例和樣例解釋。

輸出格式:

輸出一行乙個整數,表示小 f 在那一天所有可能的完成任務方式的歉意值之和對 998244353取模的結果。

一開始寫的時候,把時間複雜度的(2^20*2^20)算成了(2^21)成功t飛

沒t的那幾個點也忘了取模……

其實這道題只用組合數就好

乙個狀態的貢獻在於經過他有幾種方案到達最終態

所以我們可以發現,這是乙個組合數問題

比如說我們一共有5個任務,當前完成了3個任務

那麼轉移到完成3個任務的情況有

從00000轉移到任選3個完成

從有1個轉移到有3個

從有2個轉移到有3個

我們發現,由於我並不用確定到底選的是哪個

只用考慮選了幾個

所以選i個的情況總數就是

(原諒我直接搬了luogu的圖)

然後對於每種有貢獻的情況分別考慮即可

#include#include

#include

#include

#include

#include

#include

#define p 998244353

#define rii register int i

#define rij register int j

#define int long long

using

namespace

std;

int zhs[55][55],n,m,opt[55],ans,c[25][25

];void

ycl()

}opt[

0]=1

;

for(rii=1;i<=20;i++)

}}signed main()

while

(isdigit(ch))

scanf(

"%lld

",&val);

ans+=(((val*opt[zt])%p)*opt[n-zt])%p;

ans%=p;

}cout

<

}

洛谷11月月賽 T2 不開心的金明

傳送門 一樣大水題,不過我現在都不知道我是怎麼被hack的。題目裡有這麼一句話 要求購物單上所有的物品 的極差 最貴的減去最便宜的 不超過3 資料範圍裡還有這麼一句話 min vi vi min vi 3 那麼,其實只有四種 了。我們稱它們為0,1,2,3 然後預處理每種 選i個的最大價值 直接暴力...

洛谷 3月月賽T4 序列 貪心構造 DP

傳送門 luogup5241 一波找規律嘗試出n 4n 4 n4分做法,然而實際上是個貪心構造轉dp 考慮如何構造出一組合法序列 首先讓所有邊首尾相連形成鏈,如果scc數量產生變化,就縮鏈上開頭的一部分。在兼顧scc數量變化的同時,其它邊均貪心地用於串鏈,直到所有點都被串在了鏈上 這時就可以隨便連了...

2023年9月15日提高組模擬賽 T3 密室

給定一些點的先決條件,問到達終點至少需要經過幾個點 可以把點與點之間的距離看作1,然後跑最短路 需要注意的事判斷的過程中弱國乙個乙個去判斷速度太過抵消,可以用狀態壓縮的方法表示一種狀態,正常轉移即可 include include include include using namespace st...