沒有題面。
看到這個坑爹的資料量(最多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 #include4view codeusing
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 }
模擬賽 班服
班服 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 種不同的蛋糕,資料很小。把最後的蛋糕塔等效為乙個序列,如...