分組遊戲,2019NOI金牌營1第一題,困難的Dp

2021-09-24 21:39:24 字數 758 閱讀 2115

題目傳送門

對我來說太困難了,居然是簽到題。

很容易我們可以先排個序,但是很容易想偏成從前往後做dp。

不妨從後往前,我們考慮

那麼答案就是

轉移考慮新加入的

接著我們列舉一下有k個人現在開始組成一隊,就一共有

當然這個

首先方案數然後把

在乘上

#include#include#include#includeusing namespace std;

const int maxn=2010;

long long f[maxn][maxn],g[maxn][maxn],c[maxn][maxn],t[maxn];

const long long mod=998244353;

long long n;

int x;

int main()

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

f[n+1][0]=1;

for(int i=n+1;i>1;i--)

for(int j=0;j<=n;j++)

for(int k=0;k*(i-1)<=j+t[i-1];k++)

(f[i-1][j+t[i-1]-k*(i-1)]+=f[i][j]*c[j+t[i-1]][k*(i-1)]%mod*g[k*(i-1)][i-1]%mod)%=mod;

printf("%lld\n",f[1][0]);

return 0;

}

CSP J2019 數字遊戲

來來來!今天搞點入門級普及複賽真題 說是這麼說吧,其實也就。害 小 k 同學向小 p 同學傳送了乙個長度為 8 的 01 字串來玩數字遊戲,小 p 同學想要知道字串中究竟有多少個 1。注意 01 字串為每乙個字元是 0 或者 1 的字串,如 101 不含雙引號 為乙個長度為 3 的 01 字串。輸入...

CSP J2019 數字遊戲

來來來!今天搞點入門級普及複賽真題 說是這麼說吧,其實也就。害 小 k 同學向小 p 同學傳送了乙個長度為 8 的 01 字串來玩數字遊戲,小 p 同學想要知道字串中究竟有多少個 1。注意 01 字串為每乙個字元是 0 或者 1 的字串,如 101 不含雙引號 為乙個長度為 3 的 01 字串。輸入...

CSP2019模擬測試 遊戲

給定乙個n m n mn m的矩形方格紙,每次可以把它裁為兩個子矩形,若裁出乙個1 1 1 11 1則勝,判斷先手是否必勝。n 2000,m 2000 n le 2000,m le 2000 n 2000 m 2 000 直觀的想法是設f i j f i j f i j 為i ji j i j的矩形...