班服 狀壓DP NOIP模擬賽

2022-08-21 13:30:12 字數 1027 閱讀 8605

沒有題面。

看到這個坑爹的資料量(最多10個班級),大概會對狀壓有一些想法(反正我是沒想到)。(本題暴搜可得50分)

從資料量可以看出:狀態壓縮壓縮的是已選擇的班級而不可能是班服種類。

dp[i][j] 表示 前i種班服到達狀態j的方案數

首先,如果不選第i種班服,那麼dp[i][j]=dp[i-1][j]

如果要選第i種班服,那麼一定要在可選班服列表中有第i種班服的班級中選擇。

怎麼判斷?

狀態j中有第k個班,並且k班的待選列表中有第i種班服。

若滿足上述條件,那麼dp[i][j]+=dp[i-1][(1<

答案在**?

若有n個班,班服編號最大為maxx,那麼答案就是 dp[maxx][(1附上ac**

1 #include2 #include3 #include4

using

namespace

std;

5 template inline bool read(t &_a)

9return _ch=='';

10}1112

const

long

long modx=1000000007;13

long

long t,n,dp[101][1

<<10|1],ans,s[101

],all;

14int

maxx;

1516 inline void

solve()

1726}27

28int

main()

2945

solve();

46 printf("

%lld\n

",dp[maxx][all]);47}

48return0;

49 }

view code

模擬賽 班服

班服 shirt.pas c cpp 時間限制 1s 記憶體限制 128mb 題目描述 要開運動會了,神犇學校的n個班級要選班服,班服共有100種樣式,編號1 100 現在每個班都挑出了一些樣式待選,每個班最多有100個待選的樣式。要求每個班最終選定一種樣式作為班服,且該班的樣式不能與其他班級的相同...

狀壓DP NOIP2017 寶藏

很簡單的狀壓dp水題。一年前我居然不會。太菜了。dp i j d p i j 表示前i層,被選中的狀態為 j j 的最小代價。每次列舉乙個集合 k role presentation style position relative k k,把k中每個點向 j j 中最短的邊取和。再乘上 i 1 ro...

NOI P模擬賽 奶油蛋糕塔(狀壓 DP)

資料範圍1 n 5 1 051 leq n leq5 times10 5 1 n 5 105 n 20 n leq 20 n 20 的狀壓應該都會吧,狀態記錄已經選了的蛋糕集合,以及蛋糕序列的尾部奶油,然後列舉蛋糕轉移。總共有 10 1010 種不同的蛋糕,資料很小。把最後的蛋糕塔等效為乙個序列,如...